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