Php 按值对分组多维数组排序
需要帮助排序多维数组。对于上面的数组,我想按“sort”值按降序对每个组的内容进行排序。团队的关键点应该保持得体(苹果、橙色),但内容的关键点并不重要 数据应按以下顺序排列:Php 按值对分组多维数组排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,需要帮助排序多维数组。对于上面的数组,我想按“sort”值按降序对每个组的内容进行排序。团队的关键点应该保持得体(苹果、橙色),但内容的关键点并不重要 数据应按以下顺序排列: 苹果 苹果10 苹果5 苹果4 苹果1 橙色的 橙色10 橙色_4 用于对阵列进行排序: $data = array( 'apple' => array( 0 => array('sort'=>4, 'name'=>'apple_4'), 1 =&g
- 苹果
- 苹果10
- 苹果5
- 苹果4
- 苹果1
- 橙色的
- 橙色10
- 橙色_4
$data = array(
'apple' => array(
0 => array('sort'=>4, 'name'=>'apple_4'),
1 => array('sort'=>10, 'name'=>'apple_10'),
2 => array('sort'=>5, 'name'=>'apple_5'),
3 => array('sort'=>1, 'name'=>'apple_1')
),
'orange' => array(
0 => array('sort'=>4, 'name'=>'orange_4'),
1 => array('sort'=>10, 'name'=>'orange_10')
)
);
$data=array(
“苹果”=>数组(
0=>array('sort'=>4,'name'=>apple_4'),
1=>array('sort'=>10,'name'=>apple_10'),
2=>array('sort'=>5,'name'=>apple_5'),
3=>array('sort'=>1,'name'=>apple\u 1')
),
“橙色”=>数组(
0=>array('sort'=>4,'name'=>orange_4'),
1=>array('sort'=>10,'name'=>orange\u10'))
)
);
foreach($data as&$value){
usort($value,function($a,$b){
返回$a['sort']<$b['sort'];
});
}
您尝试过什么吗?@LouisW可能重复如果您正在排序的字段不是字符串,您应该使用更新的代码^^^将删除其他注释,因为所有内容都已清除。(在此处添加此项的foreach循环的替代方法是使用array\u walk()
,例如array\u walk($data,function(&$value){/*usort()here*/}
)
foreach($data as &$value) {
usort($value,function($a,$b) {
return $b['sort'] - $a['sort'];
});
}
$data = array(
'apple' => array(
0 => array('sort'=>4, 'name'=>'apple_4'),
1 => array('sort'=>10, 'name'=>'apple_10'),
2 => array('sort'=>5, 'name'=>'apple_5'),
3 => array('sort'=>1, 'name'=>'apple_1')
),
'orange' => array(
0 => array('sort'=>4, 'name'=>'orange_4'),
1 => array('sort'=>10, 'name'=>'orange_10')
)
);
foreach($data as &$value) {
usort($value, function($a, $b) {
return $a['sort'] < $b['sort'];
});
}