PHP在数组过滤器后未从数组中打印MongoID

D3181

我最近在对数组执行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;
  }

同样,所有这些都可以正常工作,但是经过过滤以删除空元素之后,但是现在看来似乎无法正确地遍历数组,但这可能是另一个问题。任何解决此问题的帮助将不胜感激。

D3181

错误的原因是在使用array_filter删除空元素之后,由于array_slice而保留了数组中的键。这意味着使用数组长度对其进行迭代不起作用,而是需要一个foreach循环以确保它将对数组中的所有元素进行迭代:

foreach ($array as &$value)
{
}

谢谢@ Rizier123

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript在数组过滤器内嵌套for循环

来自分类Dev

javascript在数组过滤器内嵌套for循环

来自分类Dev

PHP数组过滤器有多个条件

来自分类Dev

php数组过滤器函数问题与变量

来自分类Dev

Elasticsearch - 数组过滤器中的值

来自分类Dev

Angular 2 - 比较数组过滤器中的日期

来自分类Dev

部分数组过滤器

来自分类Dev

MuleSoft JSON 数组过滤器

来自分类Dev

数组过滤器更改主数组

来自分类Dev

PHP的数组过滤器数组只有一个属性值

来自分类Dev

数组过滤器,使用键过滤数据

来自分类Dev

如何使用Javascript数组过滤器过滤0?

来自分类Dev

PHP中的数组过滤

来自分类Dev

AngularJS过滤器检查值是否在数组中

来自分类Dev

数组过滤器方法未返回调整后的值

来自分类Dev

如何使用数组过滤器在数组内的对象内查找值,然后更改/编辑该值?

来自分类Dev

通过检查多个条件的Javascript数组过滤器

来自分类Dev

Knockout.Js数组过滤器语法

来自分类Dev

数组过滤器的异步或承诺条件

来自分类Dev

数组过滤器返回奇怪的结果

来自分类Dev

具有JSON数组过滤器的Filterpredicate

来自分类Dev

数组过滤器未返回正确的值

来自分类Dev

循环内部数组过滤器方法

来自分类Dev

使用keep_if的数组过滤器

来自分类Dev

数组过滤器的异步或承诺条件

来自分类Dev

基于多列的数组过滤器

来自分类Dev

具有绑定值的数组过滤器

来自分类Dev

通过数组过滤器长度查询ElasticSearch

来自分类Dev

用于执行函数的 Javascript 数组过滤器