如何使用PHP排序key為字母+數字的數組


你還在為如何使用PHP排序字母+數字的數組而煩惱嗎?
當時我就震驚了

今天有個小伙伴在群里問:
如何將一個key為字母+數字的數組按升序排序呢?

舉個例子:

$test = [
	'n1' => 22423,
	'n10' => 22423,
	'n2' => 'werwerw',
	'n3' => 22423,
	'n4' => 22423,
	'n5' => 22423,
	'n21' => 22423,
	'n11' => 22423,
];

希望將它排序成這樣子:

$test = [
	'n1' => 22423,
	'n2' => 'werwerw',
	'n3' => 22423,
	'n4' => 22423,
	'n5' => 22423,
	'n10' => 22423,
	'n11' => 22423,
	'n21' => 22423,
]

PHP數組函數幫到你

$test = [
	'n1' => 22423,
	'n10' => 22423,
	'n2' => 'werwerw',
	'n3' => 22423,
	'n4' => 22423,
	'n5' => 22423,
	'n21' => 22423,
	'n11' => 22423,
];
ksort($test, SORT_NATURAL);
var_dump($test);

得到的結果:

array (size=8)
  'n1' => int 22423
  'n2' => string 'werwerw' (length=7)
  'n3' => int 22423
  'n4' => int 22423
  'n5' => int 22423
  'n10' => int 22423
  'n11' => int 22423
  'n21' => int 22423

那么這個函數的意思是什么呢?

定義和用法

ksort() 函數對關聯數組按照鍵名進行升序排序。

語法
ksort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype 可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR -默認。把每一項按常規順序排列(Standard ASCII,不改變類型)。
1 = SORT_NUMERIC - 把每一項作為數字來處理。
2 = SORT_STRING - 把每一項作為字符串來處理。
3 = SORT_LOCALE_STRING - 把每一項作為字符串來處理,基於當前區域設置(可通過 setlocale() 進行更改)。
4 = SORT_NATURAL - 把每一項作為字符串來處理,使用類似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字符串進行排序,不區分大小寫。
說明

ksort() 函數按照鍵名對數組排序,為數組值保留原來的鍵。
可選的第二個參數包含附加的排序標志。
若成功,則返回 TRUE,否則返回 FALSE。

提示

提示:請使用 krsort() 函數對關聯數組按照鍵名進行降序排序。
提示:請使用 asort() 函數對關聯數組按照鍵值進行升序排序。

具體可看: 數組函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM