所以我有一个函数可以选择所有列= 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
答案 0 :(得分:0)
Count只能枚举数组的顶层,嵌套数组意味着你必须要做
count ( $array, true )
例如,它甚至会从array(2) {..} array(1){...}
中说var_dump
,它告诉我,我希望2
和1
来自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时几乎离婚了,对它有点上瘾)