您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

二维数组按值排序

2025/1/3 4:14:30发布10次查看
//排序前$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
使用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);
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product