PHP count()返回2个单独的值

时间:2017-07-15 00:07:26

标签: php count

所以我有一个函数可以选择所有列= something的东西,然后我返回一个获取所有$var->fetchAll();的变量。 我做了这个功能,所以我可以计算它返回的任何东西,它几乎按预期工作。

该函数返回(使用var_dump进行调试):

array(2) { [0]=> array(2) { ["id"]=> string(2) "18" [0]=> string(2) "18" } [1]=> array(2) { ["id"]=> string(2) "19" [0]=> string(2) "19" } } 2

array(1) { [0]=> array(2) { ["id"]=> string(2) "20" [0]=> string(2) "20" } } 1

它会单独返回,所以当我计算()时,它会分别返回2和1而不是3 ...任何想法为什么?

这是我制作的代码:

$ticketsRes = $objDatabase->getMemberResponsesById($playerTicket->ticketid);

var_dump($ticketsRes);

$group = array();

foreach ( $ticketsRes as $ticket ) {
    $group[$ticket['id']][] = $ticket;
}

echo count($group); //returns 2 and 1 instead of 3

1 个答案:

答案 0 :(得分:0)

Count只能枚举数组的顶层,嵌套数组意味着你必须要做

count ( $array, true )

例如,它甚至会从array(2) {..} array(1){...}中说var_dump,它告诉我,我希望21来自count($array)。此外,我只能看着它们的多维数组。

http://php.net/manual/en/function.count.php

  

int count(混合$ array_or_countable [,int $ mode = COUNT_NORMAL])

     

模式:如果可选模式参数设置为COUNT_RECURSIVE(或1),则count()将递归计数数组。这对于计算多维数组的所有元素特别有用。

鲜为人知的第二个参数允许您通过将其设置为1或COUNT_RECURSIVE来“递归”计数,但在PHP中,true与1相同(所以懒得我只使用它)

知道数量的人有2个输入,(<<这个家伙)。我也知道你可以做多件isset($item1, $item2, ... )哈哈。我也知道你的输出是来自var转储,是的我...(我写了太多代码,当我学习PHP时几乎离婚了,对它有点上瘾)