是否有更好的方法按$tabdocids值的顺序对$datas数组进行排序?
foreach ( $tabdocids as $ordered_id ) {
foreach ( $datas as $doc )
if ($doc->docid == $ordered_id)
$ordered [] = $doc;
}
$datas=$ordered;
解决方法:
罗马的一种方式……
#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);
[@Kris Roofe评论后更新]现在它将被排序.
或者没有排序
$datas = array_filter($datas,function ($doc) use ($tabdocids){
return (bool)in_array($doc->docid,$tabdocids);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。