مرتب سازی چندگانه (array_multisort)
تابع «مرتب سازی چندگانه» (array_multisort) چند آرایه را با هم مرتب می کند. آرایه اول مبناست و بقیه همراهش جابه جا می شوند.
تعریف و نحو (Syntax)
این تابع آرایه اول را مرتب می کند؛ سپس آرایه های بعدی با همان جابه جایی ها هماهنگ می شوند. کلیدهای متنی حفظ می شوند؛ کلیدهای عددی دوباره شماره گذاری می شوند.
<?php
// array_multisort(array1, sortorder, sorttype, array2, array3);
?>
مثال ساده: حروف الفبا
یک آرایه را صعودی مرتب کن. بقیه آرایه ای در کار نیست.
<?php
$a = array("Dog", "Cat", "Horse", "Bear", "Zebra");
array_multisort($a);
print_r($a);
?>
مرتب سازی چندگانه
دو آرایه را با هم مرتب کن. آرایه اول مبناست؛ دوم همراهش جابه جا می شود.
<?php
$a1 = array("Dog", "Cat");
$a2 = array("Fido", "Missy");
array_multisort($a1, $a2);
print_r($a1);
print_r($a2);
?>
برابری مقادیر در آرایه مبنا
اگر دو مقدار در مبنا برابر باشند، مرتب سازی آرایه بعدی تعیین کننده می شود.
<?php
$a1 = array("Dog", "Dog", "Cat");
$a2 = array("Pluto", "Fido", "Missy");
array_multisort($a1, $a2);
print_r($a1);
print_r($a2);
?>
کنترل ترتیب و نوع مرتب سازی
می توانی sortorder و sorttype بدهی. مثلاً صعودی/نزولی یا عددی/رشته ای.
<?php
$a1 = array("Dog", "Dog", "Cat");
a2 = array("Pluto", "Fido", "Missy");
$a2 = array("Pluto", "Fido", "Missy");
array_multisort($a1, SORT_ASC, $a2, SORT_DESC);
print_r($a1);
print_r($a2);
?>
ترکیب با اعداد: ادغام و مرتب سازی عددی
ابتدا دو آرایه عددی را ادغام کن. سپس عددی و نزولی مرتب کن.
<?php
$a1 = array(1, 30, 15, 7, 25);
$a2 = array(4, 30, 20, 41, 66);
$num = array_merge($a1, $a2);
array_multisort($num, SORT_DESC, SORT_NUMERIC);
print_r($num);
?>
گام های عملی
- آرایه مبنا را تعیین کن.
- آرایه های وابسته را کنار آن بده.
- در صورت نیاز، sortorder و sorttype را مشخص کن.
نکات و هشدارها
نکته: کلیدهای متنی حفظ می شوند؛ کلیدهای عددی بازشماری می شوند.
نکته: می توانی از natsort برای «مرتب سازی طبیعی» استفاده کنی.
هشدار: نوع مقایسه مهم است؛ برای اعداد از SORT_NUMERIC استفاده کن.
برای مرور سریعِ مرتب سازی چندگانه همین صفحه را نشانه گذاری کن.
جمع بندی سریع
- یک مبنا، چند آرایه هماهنگ.
- نوع و ترتیب قابل تنظیم است.
- کلیدهای عددی بازشماری می شوند.
- برابری ها با آرایه بعدی حل می شوند.