PHP:根据另一个数组对数组进行排序
我在php中遇到了一个问题,我尝试过搜索,但我只是变得更加困惑。我需要使用“priority”键值根据另一个数组对数组进行排序 这是我需要的过滤顺序PHP:根据另一个数组对数组进行排序,php,arrays,sorting,Php,Arrays,Sorting,我在php中遇到了一个问题,我尝试过搜索,但我只是变得更加困惑。我需要使用“priority”键值根据另一个数组对数组进行排序 这是我需要的过滤顺序 $custom_order = array( array('priority' => 0, 'field_id' => 'password'), array('priority' => 1, 'field_id' => 'username') ); 这就是需要过滤的数组 $default_order = a
$custom_order = array(
array('priority' => 0, 'field_id' => 'password'),
array('priority' => 1, 'field_id' => 'username')
);
这就是需要过滤的数组
$default_order = array(
'name' => array(
'username' => array(
'type' => 'text',
'priority' => 0
),
'password' => array(
'type' => 'password',
'priority' => 1
),
),
);
这是我想要的订单
$final_order = array(
'name' => array(
'password' => array(
'type' => 'password',
'priority' => 0
),
'username' => array(
'type' => 'text',
'priority' => 1
),
),
);
我很困惑,我不确定我应该使用uasort还是array_intersect,通过阅读其他关于它的文章,我更困惑了。有人能解释一下我如何用这种方式对数组进行排序吗
非常感谢。如果优先级是实际的排序标准,那么usort将是一种简单的方法:
usort( $array['name'], function($a, $b) {
return ($a->priority < $b->priority) ? -1 : 1;
});
然后将更新的优先级分配给$default项:
$final_order = array();
foreach ($default_order as $item) {
$item->priority = $priorities[$item->type];
}
然后执行最初建议的排序,以按优先级顺序获取它们:
usort( $final_order['name'], function($a, $b) {
return ($a->priority < $b->priority) ? -1 : 1;
});
usort($final_order['name'],函数($a,$b){
返回($a->优先级<$b->优先级)?-1:1;
});
对不起,也许我解释得不好。我用一个更合适的例子更新了我的问题。是的,“优先级”是我想使用的比较值。我希望$default\u顺序根据设置为$custom\u顺序的“优先级”进行排序
usort( $final_order['name'], function($a, $b) {
return ($a->priority < $b->priority) ? -1 : 1;
});