为了简单起见,这就是我所拥有的
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;
}
答案 0 :(得分:1)
代码很好,
但更好
$array[$document->color->name]=true;
和if(!isset($array[$document->color->name]))
因为它比in_array()
更快,你不会用无用的dublicates填充你的数组。