首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP陣列排序函數深度解析:sort、asort、ksort差異與應用場景

     編輯:PHP 相關知識

核心排序函數對比

函數排序依據保留鍵名適用場景
sort()值否(重置為0,1,2...)索引陣列,不需保留鍵名關聯
asort()值是關聯陣列,需保持鍵值對應關係
ksort()鍵名是按鍵名排序,保留原鍵值對應

代碼演示與輸出

sort() - 重置鍵名

$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
sort($arr);
print_r($arr);
/* Output:
Array
(
    [0] => Cat
    [1] => Dog
    [2] => Horse
) */

asort() - 保留鍵名關聯

$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
asort($arr);
print_r($arr);
/* Output:
Array
(
    [b] => Cat
    [a] => Dog
    [c] => Horse
) */

ksort() - 按鍵名排序

$arr = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
ksort($arr);
print_r($arr);
/* Output:
Array
(
    [a] => Dog
    [b] => Cat
    [c] => Horse
) */

進階參數

三個函數均支援可選第二個參數sort_flags:

  • SORT_REGULAR - 正常比較(預設)
  • SORT_NUMERIC - 數值比較
  • SORT_STRING - 字串比較
  • SORT_LOCALE_STRING - 依據區域設置字串比較

選擇指南

  • 需按值排序且不保留鍵名 → sort()
  • 需按值排序並保留鍵值關聯 → asort()
  • 需按鍵名排序 → ksort()
  • 對應降序函數:rsort()、arsort()、krsort()

掌握這三個函數的差異,是PHP陣列操作進階的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved