ฟังก์ชัน usort
ฟังก์ชัน usort เรียงลำดับอาร์เรย์
ตามค่าขององค์ประกอบ โดยใช้
ฟังก์ชัน callback เพื่อกำหนดลำดับ
ขององค์ประกอบในอาร์เรย์ที่เรียงแล้ว
ฟังก์ชันนี้จะเปลี่ยนแปลงอาร์เรย์ต้นทางโดยตรง
ฟังก์ชันเปรียบเทียบ (callback) ต้องคืนค่า เป็นจำนวนเต็ม ซึ่งขึ้นอยู่กับ ผลการเปรียบเทียบ: น้อยกว่า, เท่ากับ หรือมากกว่าศูนย์
ไวยากรณ์
usort(array &$array, callable $callback): bool
ตัวอย่าง
ลองเรียงลำดับอาร์เรย์จากน้อยไปมาก ตามค่าขององค์ประกอบ:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
ผลลัพธ์การทำงานของโค้ด:
[1, 2, 3, 4, 5]
ตัวอย่าง
คราวนี้ลองเรียงลำดับอาร์เรย์จากมากไปน้อย ตามค่าขององค์ประกอบ:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
ผลลัพธ์การทำงานของโค้ด:
[1, 2, 3, 4, 5]
ตัวอย่าง
คราวนี้ลองเรียงลำดับอาร์เรย์จากน้อยไปมาก ตามจำนวนอักขระ ในแต่ละองค์ประกอบของอาร์เรย์:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
ผลลัพธ์การทำงานของโค้ด:
[
'1',
'12',
'123',
'1234',
'12345',
]
ดูเพิ่มเติม
-
ฟังก์ชัน
sort,
ซึ่งเรียงลำดับจากน้อยไปมากตามค่าขององค์ประกอบ -
ฟังก์ชัน
rsort,
ซึ่งเรียงลำดับจากมากไปน้อยตามค่าขององค์ประกอบ -
ฟังก์ชัน
ksort,
ซึ่งเรียงลำดับจากน้อยไปมากตามคีย์ -
ฟังก์ชัน
krsort,
ซึ่งเรียงลำดับจากมากไปน้อยตามคีย์ -
ฟังก์ชัน
asort,
ซึ่งเรียงลำดับจากน้อยไปมากตามค่าขององค์ประกอบ โดยคงคีย์ไว้ -
ฟังก์ชัน
arsort,
ซึ่งเรียงลำดับจากมากไปน้อยตามค่าขององค์ประกอบ โดยคงคีย์ไว้ -
ฟังก์ชัน
natsort,
ซึ่งเรียงลำดับแบบ natural sort -
ฟังก์ชัน
natcasesort,
ซึ่งเรียงลำดับแบบ natural sort โดยไม่สนใจตัวพิมพ์ใหญ่-เล็ก -
ฟังก์ชัน
usort,
ซึ่งเรียงลำดับโดยใช้ฟังก์ชัน callback -
ฟังก์ชัน
uksort,
ซึ่งเรียงลำดับโดยใช้ฟังก์ชัน callback กับคีย์ -
ฟังก์ชัน
uasort,
ซึ่งเรียงลำดับโดยใช้ฟังก์ชัน callback โดยคงคีย์ไว้ -
ฟังก์ชัน
array_multisort,
ซึ่งเรียงลำดับหลายอาร์เรย์พร้อมกัน