php - 二维数组按值排序
本文介绍了php - 二维数组按值排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
//排序前
$arr = array(
0 => array('id' => 'C160001-12'),
1 => array('id' => 'C160001-10'),
2 => array('id' => 'C160001-11'),
3 => array('id' => 'C160001-4'),
4 => array('id' => 'C160001-6'),
5 => array('id' => 'C160001-3'),
6 => array('id' => 'C160001-2'),
7 => array('id' => 'C160001-5'),
8 => array('id' => 'C160001-0'),
9 => array('id' => 'C160001-8'),
10 => array('id' => 'C160001-1'),
11 => array('id' => 'C160001-9'),
12 => array('id' => 'C160001-7'),
);
//排序后
$arr = array(
0 => array('id' => 'C160001-0'),
1 => array('id' => 'C160001-1'),
2 => array('id' => 'C160001-2'),
3 => array('id' => 'C160001-3'),
4 => array('id' => 'C160001-4'),
5 => array('id' => 'C160001-5'),
6 => array('id' => 'C160001-6'),
7 => array('id' => 'C160001-7'),
8 => array('id' => 'C160001-8'),
9 => array('id' => 'C160001-9'),
10 => array('id' => 'C160001-10'),
11 => array('id' => 'C160001-11'),
12 => array('id' => 'C160001-12'),
);
求大神解答排序算法!
---------------------------------------华丽的分割线------------------------------------------
虽然楼下给出了答案,但是本人的另一位朋友又给出了一种更简便直观的方法,如下:
usort($statementsample,function($a,$b){
return (int)substr($a['id'],8)>(int)substr($b['id'],8);
});
解决方案
function my_sort($a,$b)
{
$a = explode('-',$a['id'])[1];
$b = explode('-',$b['id'])[1];
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}
usort($arr,'my_sort');
使用usort 方法比较灵活。
这篇关于php - 二维数组按值排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文