我知道SO上有another question应该回答同样的事情。我的问题是我不知道阵列合并与什么做了什么。我不想合并阵列,我不明白这有助于订购它们......我也不知道订购的位置。
如果相关,有人可以更详细地解释另一个答案对我是否有用以及如何
这就是我所拥有的(数组相当大,所以这是一个简化)
基本上我有这样的东西
Array (
[0] => stdClass Object (
[term_id] => 72
[name] => name
[slug] => slug
[term_group] => 0
[term_order] => 1
[term_taxonomy_id] => 73
[taxonomy] => gallery_category
[description] => description
[parent] => 78
[count] => 85 )
[1] => stdClass Object (
[term_id] => 77
[name] => name
[slug] => slug
etc, etc, etc, there are a lot of objects in the array
然后我有一个像
这样的排序数组 Array (
[0] => 77,
[1] => 72,
etc
所以我想要做的是在第一个数组上强加第二个数组的顺序 - 排序数组以正确的顺序保存第二个数组中[term_id]的值。在上面的例子中,这意味着我将颠倒前两个对象的顺序。
答案 0 :(得分:3)
$order_array = [77, 72];
$order_array = array_flip($order_array);
usort($objects, function($a, $b) use ($order_array)
{
return $order_array[$a->term_id] - $order_array[$b->term_id];
});
这假设$order_array
每个term_id
都有一个条目。
答案 1 :(得分:0)
uksort可以做到。
function cmp($a, $b)
{
$ordering_array=array(0=>77, 1=>72);
return $ordering_array[$a] - $ordering_array[$b];
}
$a = array() #etc...
uksort($a, "cmp");