二维数组按值排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了二维数组按值排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2978字,纯文字阅读大概需要5分钟。
内容图文
![二维数组按值排序](/upload/InfoBanner/zyjiaocheng/243/071cfc994bfe4e6189cf8872524e31a9.jpg)
//排序前
$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);
});
回复内容:
//排序前
$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 方法比较灵活。
array_multisort() 函数 示例如下
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
$type = array();
foreach ($data as $key => $value) {
$type[] = $value['edition'];
}
array_multisort($type, SORT_ASC, $data);
var_dump($data);
内容总结
以上是互联网集市为您收集整理的二维数组按值排序全部内容,希望文章能够帮你解决二维数组按值排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。