php 二位数组排序

array(3) { 
        [0]=> array(2) { 
            ["b_id"]=> string(1) "9" ["dis"]=> int(350) 
        } 
        [1]=> array(2) {
         ["b_id"]=> string(1) "8" ["dis"]=> int(600) 
        } 
         [2]=> array(2) { ["b_id"]=> string(1) "7" ["dis"]=> int(312) 
        } 
        }

这样的数组怎样排序也就是 dis 最小的排在前面

然后把排序好的数组 b_id 拼接成字符串 $str = "8,7,9"; 这样的

侃侃无极
浏览 372回答 3
3回答

跃然一笑

array_multisort 多维数组排序 $list=[ ['b_id'=>10,'dis'=>310], ['b_id'=>20,'dis'=>350], ['b_id'=>30,'dis'=>140], ['b_id'=>40,'dis'=>330], ['b_id'=>50,'dis'=>320] ]; echo "<pre>"; $disSortArr = array_column($list, 'dis'); array_multisort($list, SORT_DESC, SORT_NUMERIC,$disSortArr); $bids =implode(array_column($list, 'dis'),','); var_dump($list,$bids);

陪伴而非守候

这个还是建议自己手动写一个二维数组的排序 function arraySort($array,$field,$type='asc') { $keySort=array(); foreach ($array as $key=>$value) { $keySort[$key]=$value[$field]; //将原数组的键值和需要比较的字段值拿出来组成新的数组 } if($type == 'asc') asort($keySort); if($type == 'desc') arsort($keySort); $new=array(); foreach ($keySort as $key=>$value) { $new[] = $array[$key]; } return $new; //返回排序的结果 } 这样每次传入要排序的数组和排序的字段就好
打开App,查看更多内容
随时随地看视频慕课网APP