ในการเขียนโปรแกรม เราอาจจะหาผลลัพธ์ในการเรียงตัวแปร อย่างเช่น
ฟังก์ชัน sort()จะเป็นฟังก์ชัน การเรียง value ในอาร์เรย์จากน้อยไปมาก และเปลี่ยน key ของ array เป็นตัวเลข ( เริ่มจาก 0 ) ด้วยฟังก์ชั่น sort() อย่างเช่น ถ้าเรามี ข้อมูล 4 อย่างได้แก่ Lemon, Orange, Banana, Apple และทำการใช้ฟังก์ชัน sort () ข้อมูลจะเรียงตามตัวอักษรโดยอัตโนมัติ และมีอีกตัวอย่างหนึ่ง
asort();จะเป็นการเรียงค่า Value ของอาเรย์ แต่หากเราใช้ uksort() จะเป็นฟังก์ชันที่เรียงข้อมูลตามที่เรากำหนดได้ เรามาดูตัวอย่างกันเลย
โค้ดตัวอย่าง
โค้ด: เลือกทั้งหมด
<?php
function cmp($a, $b)
{
$a = preg_replace('@^(a|an|the) @', '', $a); //ตัวแปรที่กำหนดว่า ให้ขึ้นเรียงก่อน
$b = preg_replace('@^(a|an|the) @', '', $b);
return strcasecmp($a, $b);
}
$a = array("a baaaaaaaab" => 1, "the aaaaaaaaac" => 2, "an baaaaaaaaa" => 3, "a baaaaaaaaa" => 4); //กำหนดค่าให้ข้อมูล
uksort($a, "cmp"); //เรียงตาม $a
foreach ($a as $key => $value) {
echo "$key: $value.<br>";
}
?>
ผลลัพธ์
เราจะสังเกตได้ว่า ตัวแปรที่ อยู่หลัง a จะเรียงตามกันมาเรื่อยๆ แล้วตัวหน้าก็จะเป็นหลักว่า ในเลข2 จะเห็นได้ว่า the มาก่อน แล้วต่อด้วย a เลยต้องขึ้นเรียงเป็นอันดับแรก และอันที่ 3 ก็ขึ้นด้วย the เหมือนกันแต่ว่า ตามด้วย ac เลยไม่ได้ขึ้นก่อน
- Selection_999(287).png (8.63 KiB) Viewed 819 times
อ้างอิง
1 https://www.w3resource.com/php/function-reference/uksort.php
2 https://www.php.net/manual/en/function.uksort.php
3 https://www.w3schools.com/php/func_array_uksort.asp
ในการเขียนโปรแกรม เราอาจจะหาผลลัพธ์ในการเรียงตัวแปร อย่างเช่น [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/63-%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99-php/945-sort.html]ฟังก์ชัน sort()[/url]จะเป็นฟังก์ชัน การเรียง value ในอาร์เรย์จากน้อยไปมาก และเปลี่ยน key ของ array เป็นตัวเลข ( เริ่มจาก 0 ) ด้วยฟังก์ชั่น sort() อย่างเช่น ถ้าเรามี ข้อมูล 4 อย่างได้แก่ Lemon, Orange, Banana, Apple และทำการใช้ฟังก์ชัน sort () ข้อมูลจะเรียงตามตัวอักษรโดยอัตโนมัติ และมีอีกตัวอย่างหนึ่ง [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/63-%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99-php/943-asort.html]asort();[/url]จะเป็นการเรียงค่า Value ของอาเรย์ แต่หากเราใช้ uksort() จะเป็นฟังก์ชันที่เรียงข้อมูลตามที่เรากำหนดได้ เรามาดูตัวอย่างกันเลย
โค้ดตัวอย่าง
[code=php]<?php
function cmp($a, $b)
{
$a = preg_replace('@^(a|an|the) @', '', $a); //ตัวแปรที่กำหนดว่า ให้ขึ้นเรียงก่อน
$b = preg_replace('@^(a|an|the) @', '', $b);
return strcasecmp($a, $b);
}
$a = array("a baaaaaaaab" => 1, "the aaaaaaaaac" => 2, "an baaaaaaaaa" => 3, "a baaaaaaaaa" => 4); //กำหนดค่าให้ข้อมูล
uksort($a, "cmp"); //เรียงตาม $a
foreach ($a as $key => $value) {
echo "$key: $value.<br>";
}
?>[/code]
ผลลัพธ์
เราจะสังเกตได้ว่า ตัวแปรที่ อยู่หลัง a จะเรียงตามกันมาเรื่อยๆ แล้วตัวหน้าก็จะเป็นหลักว่า ในเลข2 จะเห็นได้ว่า the มาก่อน แล้วต่อด้วย a เลยต้องขึ้นเรียงเป็นอันดับแรก และอันที่ 3 ก็ขึ้นด้วย the เหมือนกันแต่ว่า ตามด้วย ac เลยไม่ได้ขึ้นก่อน
[attachment=0]Selection_999(287).png[/attachment]
อ้างอิง
1 https://www.w3resource.com/php/function-reference/uksort.php
2 https://www.php.net/manual/en/function.uksort.php
3 https://www.w3schools.com/php/func_array_uksort.asp