Php 按值对数组和子数组排序
我有这样一个数组:Php 按值对数组和子数组排序,php,arrays,multidimensional-array,usort,Php,Arrays,Multidimensional Array,Usort,我有这样一个数组: $array = array( 4 => array( 'position' => 0 'children' => array( ) ), 2 => array( 'position' => 0 'children' => array( 3 => array( 'po
$array = array(
4 => array(
'position' => 0
'children' => array(
)
),
2 => array(
'position' => 0
'children' => array(
3 => array(
'position' => 1
)
5 => array(
'position' => 0
)
)
)
)
我需要按“位置”键对外部数组(2和4)进行升序(向上0),然后按它们各自的位置对这些(“子项”)的每个内部数组进行排序
可能有6个主数组,需要排序6个“子”数组
执行此操作的最佳方法是什么?如果我正确理解您对问题的解释,以下代码将适用于您:
//sort the outer array
usort($array, function($a, $b) {
return $a['position'] - $b['position'];
});
//sort childrens
foreach ($array as &$item) {
usort($item['children'], function($a, $b) {
return $a['position'] - $b['position'];
});
}
在任何情况下,usort都是一个本机php函数,对于所描述的情况来说非常方便 如果我正确理解您对问题的解释,以下代码将适用于您:
//sort the outer array
usort($array, function($a, $b) {
return $a['position'] - $b['position'];
});
//sort childrens
foreach ($array as &$item) {
usort($item['children'], function($a, $b) {
return $a['position'] - $b['position'];
});
}
在任何情况下,usort都是一个本机php函数,对于所描述的情况来说非常方便 看,我确实试过了。我没有通过推荐,这可能是我的问题吗?我已经更改了这个,所以我不需要它。是的,您需要通过引用传递子数组才能更改它。请参阅我已经尝试过了。我没有通过推荐,这可能是我的问题吗?我已经更改了它,所以我不需要它。是的,您需要通过引用传递子数组才能更改它