我在PHP中有两个数组.第一个数组($ author_array)由特定顺序的user_ids组成,如下所示:(8,1,6)
第二个数组($ user_results)由一组对象组成,如下所示:
Array ( [0] => stdClass Object ( [ID] => 1 [user_login] => user1 ) [1] => stdClass Object ( [ID] => 6 [user_login] => user6 ) [2] => stdClass Object ( [ID] => 8 [user_login] => user8 ) )
我想"排序"第二个数组,使其按此顺序排列,它与第一个数组(8,1,6)中的值的顺序相匹配.所以它看起来像这样:
Array ( [0] => stdClass Object ( [ID] => 8 [user_login] => user8 ) [1] => stdClass Object ( [ID] => 1 [user_login] => user1 ) [2] => stdClass Object ( [ID] => 6 [user_login] => user6 ) )
我在数据结构方面很弱.我怎么能这样做?:-)
在此先感谢您的帮助!
-Bob
使用usort并提供自定义比较函数,该函数使用"排序"数组中键的位置来确定排序顺序,例如:
function cmp($a, $b) { global $author_array; $pos1=array_search ($a->ID, $author_array); $pos2=array_search ($b->ID, $author_array); if ($pos1==$pos2) return 0; else return ($pos1 < $pos2 ? -1 : 1); } usort($user_results, "cmp");