Я недавно возникли некоторые проблемы с печатью моего Mongoid из массива после выполнения array_filter на массиве:PHP не печатает 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))
Однако распечатывания идентификатор Теперь выходит из строя или нет цикл:
$length = count($array);
for ($i = 0; $i < $length; $i++) {
$id = $array[$i]->{'$id'};
echo $id;
}
Опять же все это использовалось для работы, но после фильтрации для удаления нулевых элементов, однако теперь кажется, что он не перебирает правильный массив, но это может быть другой проблемой. Любая помощь в решении этого вопроса будет оценена по достоинству.
Посмотрите на ключи вашего размещенного массива, а затем посмотрите на цикл for и что вы там делаете: P – Rizier123
вы имеете в виду, потому что мои ключи начинаются с 3 после фильтрации? поэтому я должен найти способ перебрать его для каждого элемента, а не использовать длину массива? – D3181
Точно. И поскольку вы сохраняете ключи в 'array_slice()', они все равно будут начинаться с 3 :) Таким образом, вы можете использовать цикл foreach или получить ключи из массива с помощью 'array_keys()', а затем получить доступ к ключам с переменной счетчика из цикл for и ключи для индекса массива. – Rizier123