PHP foreach获取所有值的最后日期

时间:2017-02-20 15:37:10

标签: php arrays mongodb foreach

为了简单起见,这就是我所拥有的

1)名称数组:

array (size=953)
  0 => string 'name1' (length=5)
  1 => string 'name2' (length=5)

2)来自带有mongodb驱动程序的游标的foreach:

foreach($cursor as $key => $document) {

}

在这个foreach中,我希望获得每个name的最新日期。 我是从最近的日期到最旧日期的迭代,如果我已经获得每个name的最新日期,我就不希望循环继续。

那么,我怎么能循环直到我得到数组中每个名字的日期?可能有很多数据,所以我想让这个循环比我原来的解决方案更好。

也许是这样的?

foreach($cursor as $key => $document) {
    if (!in_array($document->color->name, $array)) {
        $position[] = array(
            'name' => $document->color->name,
            'dateTime' => $document->color->dateTime,
        );
    }
    $array[] = $document->color->name;
}

解决方案

foreach($cursor as $key => $document) {
    if(!isset($array[$document->color->name])) {
        $position[] = array(
            'name' => $document->color->name,
            'dateTime' => $document->color->dateTime,
        );
    }
    $array[$document->color->name]=true;
}

1 个答案:

答案 0 :(得分:1)

代码很好,

但更好 $array[$document->color->name]=true;

if(!isset($array[$document->color->name]))

因为它比in_array()更快,你不会用无用的dublicates填充你的数组。