鍍金池/ 問答/PHP/ php 二位數(shù)組排序

php 二位數(shù)組排序

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) 
        } 
        }

這樣的數(shù)組怎樣排序也就是 dis 最小的排在前面

然后把排序好的數(shù)組 b_id 拼接成字符串 $str = "8,7,9"; 這樣的

回答
編輯回答
風(fēng)清揚(yáng)
array_multisort 多維數(shù)組排序

$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);
2017年7月24日 08:33
編輯回答
遲月

建議多看 php 手冊(cè)
這種問題,最好自行 google/百度 解決,可以提高自己搜索問題答案的能力。

分享一個(gè)剛才看到的趣圖:

clipboard.png

2017年5月15日 02:06
編輯回答
尋仙

這個(gè)還是建議自己手動(dòng)寫一個(gè)二維數(shù)組的排序

function arraySort($array,$field,$type='asc')
{
    $keySort=array();
    foreach ($array as $key=>$value)
    {
        $keySort[$key]=$value[$field];                                                            //將原數(shù)組的鍵值和需要比較的字段值拿出來組成新的數(shù)組
    }

    if($type == 'asc') asort($keySort);
    if($type == 'desc') arsort($keySort);

    $new=array();
    foreach ($keySort as $key=>$value)
    {
        $new[] = $array[$key];
    }

    return $new;                                                                                              //返回排序的結(jié)果
}

這樣每次傳入要排序的數(shù)組和排序的字段就好

2017年7月18日 06:12