array_multisort 第二個陣列沒有正確排序

皮蛋發表於2020-07-30

示例錯誤程式碼

$array1 = [5, 3, 1, 5, 7];
$array2 = ['ab','ac','ad','aa','ae'];

array_multisort($array1,$array2);

var_dump($array1,$array2);

我們希望array2輸出結果順序是 ad, ac, ab, aa, ae
但實際輸出結果如下:

//$array1
array(5) {
  [0]=> int(1)
  [1]=> int(3)
  [2]=> int(5)
  [3]=> int(5)
  [4]=> int(7)
}
//$array2
array(5) {
  [0]=> string(2) "ad"
  [1]=> string(2) "ac"
  [2]=> string(2) "aa"
  [3]=> string(2) "ab"
  [4]=> string(2) "ae"
}

使用array_multisort()函式時需要注意如果第一個陣列中存在相同的值,那對應的第二個陣列的值會預設按順序排序。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章