تابع PHP array_multisort()

مثال

Return an array sorted in ascending order:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);;
print_r($a);
?>

Run Instance

تعریف و استفاده

تابع array_multisort() یک آرایه مرتب شده را برمی‌گرداند. شما می‌توانید یک یا چند آرایه را وارد کنید. این تابع ابتدا آرایه اول را مرتب می‌کند، سپس آرایه‌های دیگر را و اگر دو یا چند مقدار مشابه باشد، آن‌ها را بر اساس آرایه بعدی مرتب می‌کند.

نکته:نام‌های کلید رشته‌ای حفظ می‌شوند، اما نام‌های کلید عددی دوباره شماره‌گذاری می‌شوند، از 0 شروع می‌کنند و به 1 افزایش می‌یابند.

نکته:می‌توانید ترتیب مرتب‌سازی و نوع مرتب‌سازی پارامترهای آرایه را در هر آرایه تنظیم کنید. اگر تنظیم نشده باشد، هر پارامتر آرایه از ارزش پیش‌فرض استفاده می‌کند.

نحوه استفاده

array_multisort(array1,ترتیب مرتب‌سازی,نوع مرتب‌سازی,array2,array3...)
پارامتر توضیح
array1 لازم. آرایه مشخص شده.
ترتیب مرتب‌سازی

اختیاری. ترتیب مرتب‌سازی مشخص شده.

  • SORT_ASC - پیش‌فرض. به ترتیب افزایشی مرتب می‌کند. (A-Z).
  • SORT_DESC - به ترتیب کاهشی مرتب می‌کند. (Z-A).
نوع مرتب‌سازی

اختیاری. نوع مرتب‌سازی مشخص شده.

  • SORT_REGULAR - پیش‌فرض. هر عنصر را به ترتیب معمولی مرتب می‌کند (ASCII استاندارد، نوع تغییر نمی‌کند).
  • SORT_NUMERIC - هر عنصر را به عنوان یک عدد در نظر می‌گیرد.
  • SORT_STRING - هر عنصر را به عنوان یک رشته در نظر می‌گیرد.
  • SORT_LOCALE_STRING - هر عنصر را به عنوان یک رشته در نظر می‌گیرد، بر اساس تنظیمات منطقه‌ای فعلی (می‌تواند با setlocale() تغییر کند).
  • SORT_NATURAL - هر عنصر را به عنوان یک رشته در نظر می‌گیرد، از ترتیب طبیعی مانند natsort() استفاده می‌کند.
  • SORT_FLAG_CASE - می‌تواند با (با یا) SORT_STRING یا SORT_NATURAL برای مرتب‌سازی رشته‌ها استفاده شود، بدون توجه به حروف بزرگ و کوچک.
array2 اختیاری. آرایه مشخص شده.
array3 اختیاری. آرایه مشخص شده.

توضیح

توابع array_multisort() برای مرتب‌سازی چندین آرایه یا آرایه‌های چند بعدی استفاده می‌شود.

آرایه‌هایی که در پارامتر قرار دارند به عنوان ستون‌های یک جدول به ترتیب سطرها مرتب می‌شوند - این شبیه به عملکرد دستور ORDER BY در SQL است. آرایه اول آرایه اصلی برای مرتب‌سازی است. اگر سطرها (ارزش‌ها) در آرایه‌ها یکسان باشند، به ترتیب به سطر بعدی در آرایه‌های ورودی مراجعه می‌شود تا مقایسه‌ها انجام شود، و به همین ترتیب.

اولین پارامتر یک آرایه است، هر پارامتر بعدی ممکن است آرایه باشد یا یکی از نشانه‌های ترتیب زیر (نشانه‌های ترتیب برای تغییر ترتیب پیش‌فرض استفاده می‌شوند):

  • SORT_ASC - پیش‌فرض، به ترتیب افزایشی مرتب می‌کند. (A-Z)
  • SORT_DESC - به ترتیب کاهشی مرتب می‌کند. (Z-A)

پس می‌توان نوع مرتب‌سازی را مشخص کرد:

  • SORT_REGULAR - پیش‌فرض. هر عنصر را به ترتیب معمولی مرتب می‌کند.
  • SORT_NUMERIC - به ترتیب عددی هر عنصر را مرتب می‌کند.
  • SORT_STRING - Sort each item in alphabetical order.

Technical Details

Return Value: Returns TRUE if successful, and FALSE if not.
PHP Version: 4+
Update Log:

The sorting types SORT_NATURAL and SORT_FLAG_CASE were added in PHP 5.4.

The sorting type SORT_LOCALE_STRING was added in PHP 5.3.

More Examples

Example 1

Return an array sorted in ascending order:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Run Instance

Example 2

How to sort when two values are the same:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Run Instance

Example 3

Using sorting parameters:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);;
print_r($a1);
print_r($a2);
?>

Run Instance

Example 4

Merge two arrays and sort them in descending order by number:

<?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);
?>

Run Instance