รู้จักกับ ฟังก์ชัน uksort() - ใช้เรียงตัวอักษรอาเรย์ตามที่เรากำหนด

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: รู้จักกับ ฟังก์ชัน uksort() - ใช้เรียงตัวอักษรอาเรย์ตามที่เรากำหนด

รู้จักกับ ฟังก์ชัน uksort() - ใช้เรียงตัวอักษรอาเรย์ตามที่เรากำหนด

โดย Patipat » 18/07/2019 3:42 pm

ในการเขียนโปรแกรม เราอาจจะหาผลลัพธ์ในการเรียงตัวแปร อย่างเช่น ฟังก์ชัน 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
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

ข้างบน