Mat*_*eil 3 php arrays sorting
是否有更好的方法按$ tabdocids值的顺序对$ datas数组进行排序?
foreach ( $tabdocids as $ordered_id ) {
foreach ( $datas as $doc )
if ($doc->docid == $ordered_id)
$ordered [] = $doc;
}
$datas=$ordered;
Run Code Online (Sandbox Code Playgroud)
罗马的一种方式......
#for collect
$ordered = array_flip($tabdocids);//too keep the order from the $tabdocids
array_map(function ($doc) use ($tabdocids,&$ordered){
if(in_array($doc->docid,$tabdocids)){ $ordered [$doc->docid] = $doc; }
},$datas);
$datas=array_values($ordered);
Run Code Online (Sandbox Code Playgroud)
[@Kris Roofe评论后更新]现在它将被排序.
或者没有排序
$datas = array_filter($datas,function ($doc) use ($tabdocids){
return (bool)in_array($doc->docid,$tabdocids);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
110 次 |
最近记录: |