我最近在对数组执行array_filter后从数组打印mongoID时遇到了一些问题:
$array = array_filter($array);
$array = array_slice($array, 0, 3, true);
这曾经很好并且可以在没有array_filter的情况下工作,现在该数组包含:
Array ( [3] => MongoId Object ( [$id] => 57b0facace2350981c000029 ) [4] => MongoId Object ( [$id] => 57b0fafcce2350981c00002b ) )
但是,现在输出ID失败或不会循环:
$length = count($array);
for ($i = 0; $i < $length; $i++) {
$id = $array[$i]->{'$id'};
echo $id;
}
同样,所有这些都可以正常工作,但是经过过滤以删除空元素之后,但是现在看来似乎无法正确地遍历数组,但这可能是另一个问题。任何解决此问题的帮助将不胜感激。
错误的原因是在使用array_filter删除空元素之后,由于array_slice而保留了数组中的键。这意味着使用数组长度对其进行迭代不起作用,而是需要一个foreach循环以确保它将对数组中的所有元素进行迭代:
foreach ($array as &$value)
{
}
谢谢@ Rizier123
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句