我该怎么做:
Array
(
[0] => stdClass Object
(
[id] => 123
[name] => Board
)
[1] => stdClass Object
(
[id] => 133
[name] => Staff
)
)
分为:
Array
(
[0] => stdClass Object
(
[id] => 133
[name] => Staff
)
[1] => stdClass Object
(
[id] => 123
[name] => Board
)
)
基于此:
Array( 'Staff', 'Board' )
换句话说 - 根据值数组排序对象数组...
答案 0 :(得分:2)
$ordering = ['Staff', 'Board'];
usort($myObjects, function($a, $b) use ($ordering) {
$idx1 = array_search($a->name, $ordering);
$idx2 = array_search($b->name, $ordering);
if($idx1 == $idx2)
return 0;
elseif($idx1 < $idx2)
return -1;
return 1;
});
此示例确实假设$ordering
将包含它将要遇到的所有名称。如果不是,你必须在那里修补行为(不能这样做,因为我不知道&#39;你想要对不匹配的项目进行排序)。