ฟังก์ชัน array_multisort() ใช้จัดเรียง หลายอาร์เรย์พร้อมกัน หรือ อาร์เรย์หลายมิติ (multi-dimensional arrays) สามารถกำหนดลำดับการจัดเรียง (ascending/descending) และประเภทการเปรียบเทียบได้
ไวยากรณ์ (Syntax)
array_multisort(arr1, sort_order, sort_type, arr2, arr3, arr4, ...)
พารามิเตอร์ (Parameters)
arr1 − อาร์เรย์หลักที่ต้องการจัดเรียง
sort_order − ลำดับการจัดเรียง:
SORT_ASC- เริ่มต้น ขึ้นจากน้อยไปมาก (A-Z)SORT_DESC- ลงจากมากไปน้อย (Z-A)
sort_type − ประเภทการเปรียบเทียบ:
SORT_REGULAR- เริ่มต้น เปรียบเทียบปกติSORT_NUMERIC- เปรียบเทียบเป็นตัวเลขSORT_STRING- เปรียบเทียบเป็นสตริงSORT_LOCALE_STRING- เปรียบเทียบตาม localeSORT_NATURAL- เปรียบเทียบแบบ natural orderingSORT_FLAG_CASE- รวมกับ SORT_STRING หรือ SORT_NATURAL เพื่อไม่คำนึงตัวพิมพ์เล็ก/ใหญ่
arr2, arr3, arr4, ... − อาร์เรย์เพิ่มเติมที่จะจัดเรียงตามอาร์เรย์หลัก (ตัวเลือก)
ค่าที่ส่งคืน (Return Value)
ส่งคืนอาร์เรย์ที่จัดเรียงแล้ว (แก้ไขอาร์เรย์ต้นฉบับโดยตรง)
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1: จัดเรียงสองอาร์เรย์พร้อมกัน
<?php
$a1 = array(12, 55, 3, 9, 99);
$a2 = array(44, 67, 22, 78, 46);
array_multisort($a1, $a2);
print_r($a1);
print_r($a2);
?>
ผลลัพธ์
Array ( [0] => 3 [1] => 9 [2] => 12 [3] => 55 [4] => 99 )
Array ( [0] => 22 [1] => 78 [2] => 44 [3] => 67 [4] => 46 )
ตัวอย่างที่ 2: รวมอาร์เรย์สองตัวแล้วจัดเรียงจากน้อยไปมาก
<?php
$a1 = array(12, 55, 3, 9, 99);
$a2 = array(44, 67, 22, 78, 46);
$num = array_merge($a1, $a2);
array_multisort($num, SORT_ASC, SORT_NUMERIC);
print_r($num);
?>
ผลลัพธ์
Array ( [0] => 3 [1] => 9 [2] => 12 [3] => 22 [4] => 44 [5] => 46 [6] => 55 [7] => 67 [8] => 78 [9] => 99 )