面試 - 一道php陣列排序的筆試題
世界只因有你
世界只因有你 2017-05-16 13:00:16
0
5
642

數組:

$array = [ 0=>"z01", 1=>"Z32", 2=>"z17", 3=>"Z16", ];

需要排序後的結果

$rs_array = [ 0=>"z01", 3=>"Z16", 2=>"z17", 1=>"Z32", ];

有什麼好的排序寫法呢?

世界只因有你
世界只因有你

全部回覆 (5)
某草草
asort($array, SORT_FLAG_CASE | SORT_NATURAL); var_dump($array);

得到:

array:4 [ 0 => "z01" 3 => "Z16" 2 => "z17" 1 => "Z32" ]
    PHPzhong

    可以使用使用者自定的比較函數, usort。

    $array = [ 0=>"z01", 1=>"Z32", 2=>"z17", 3=>"Z16", ]; function cmp($a,$b){ $a = intval(substr($a, 1)); $b = intval(substr($b, 1)); if ($a == $b) { return 0; } return ($a < $b ) ? -1 : 1; } usort($array, "cmp"); print_r($array); /* Array ( [0] => z01 [1] => Z16 [2] => z17 [3] => Z32 ) */
      phpcn_u1582

      一個系統函數搞定

      "z01", 1=>"Z32", 2=>"z17", 3=>"Z16", ]; natcasesort($array); print_r($array);
        阿神

        有個陣列函數,直接比對value的

          世界只因有你

          array_sort(array_values($rs_array))

            最新下載
            更多>
            網站特效
            網站源碼
            網站素材
            前端模板
            關於我們 免責聲明 Sitemap
            PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!