首頁  >  文章  >  後端開發  >  php對多個陣列或多維數組進行排序的函數array_multisort()

php對多個陣列或多維數組進行排序的函數array_multisort()

黄舟
黄舟原創
2017-11-08 10:16:071532瀏覽

實例

傳回一個升序排列的陣列:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);
?>

定義與用法

array_multisort() 函數傳回排序陣列。您可以輸入一個或多個陣列。函數先對第一個數組進行排序,接著是其他數組,如果兩個或多個值相同,它將對下一個數組進行排序。

註解:字串鍵名將被保留,但是數字鍵名將會重新索引,從 0 開始,並以 1 遞增。

註解:您可以在每個陣列後設定排序順序和排序類型參數。如果沒有設置,每個數組參數會使用預設值

語法

array_multisort(array1,sorting order,sorting type,array2,array3...)
參數 #描述
array1 必需。規定數組。
sorting order 可選。規定排列順序。可能的值:
  • SORT_ASC - 預設。按升序排列 (A-Z)。

  • SORT_DESC - 依降序排列 (Z-A)。

sorting type #可選。規定排序類型。可能的值:
  • SORT_REGULAR - 預設。把每一項依照常規順序排列(Standard ASCII,不改變類型)。

  • SORT_NUMERIC - 把每一項當作數字來處理。

  • SORT_STRING - 把每一項當作字串來處理。

  • SORT_LOCALE_STRING - 將每一項當作字串來處理,基於目前區域設定(可透過 setlocale() 進行變更)。

  • SORT_NATURAL - 將每一項當作字串來處理,使用類似 natsort() 的自然排序。

  • SORT_FLAG_CASE - 可以結合(位元或)SORT_STRING 或 SORT_NATURAL 對字串進行排序,不區分大小寫。

array2 可選。規定數組。
array3 可選。規定數組。

技术细节

返回值: 如果成功则返回 TRUE,如果失败则返回 FALSE。
PHP 版本: 4+
更新日志 排序类型 SORT_NATURAL 和 SORT_FLAG_CASE 是在 PHP 5.4 中新增的。

排序类型 SORT_LOCALE_STRING 是在 PHP 5.3 中新增的。

更多实例

实例 1

返回一个升序排列的数组:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>

实例 2

当两个值相同时如何排序:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>

实例 3

使用排序参数:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);
?>

实例 4

合并两个数组,并按数字降序排列:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);
?>


以上是php對多個陣列或多維數組進行排序的函數array_multisort()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn