usort (usort)
می خواهی «مرتب سازی با usort» را یاد بگیری؟ usort با «تابع مقایسه (Comparison Function)» کار می کند. یعنی خودت می گویی کدام مقدار کوچک تر است. سپس آرایه بر اساس مقدارها مرتب می شود.
usort چیست؟
تابع usort آرایه را بر اساس مقدارها و با الگوریتم دلخواه تو مرتب می کند. این تابع کلیدهای قبلی را نگه نمی دارد و شاخص ها از نو چیده می شوند.
سینتکس و پارامترها
سینتکس (Syntax) یعنی شکل درست نوشتن دستور.
usort($array, $callback);
array: آرایه هدف. callback: تابعی که دو مقدار را مقایسه می کند و عدد منفی، صفر، یا مثبت برمی گرداند.
مثال اجراشدنی: مرتب سازی سفارشی مقدارها
یک تابع مقایسه می نویسیم. سپس آرایه را با usort مرتب می کنیم.
<?php
function my_sort($a, $b) {
if ($a == $b) {
return 0;
}
if ($a < $b) {
return -1;
}
return 1;
}
$a = array(4, 2, 8, 6);
usort($a, "my_sort");
foreach ($a as $key => $value) {
echo "[" . $key . "] => " . $value;
echo "<br>";
}
?>
گام های عملی سریع
- آرایه مقدارها را بساز.
- تابع مقایسه دلخواه تعریف کن.
- usort را با آرایه و تابع صدا بزن.
- خروجی را چاپ و بررسی کن.
نکته: اگر می خواهی کلیدها حفظ شوند از uasort استفاده کن. اگر می خواهی بر اساس کلید مرتب کنی از uksort کمک بگیر.
هشدار: در PHP 8.2 به بعد مقدار بازگشتی همیشه TRUE است. اگر callback پارامتر ارجاعی بخواهد، در PHP 8 هشدار می دهد.
لینک های مرتبط و تکمیلی
مرتب سازی با usort، uasort، و uksort را کنار هم مقایسه کن.
جمع بندی سریع
- usort با تابع مقایسه کار می کند.
- مرتب سازی بر اساس مقدارهاست.
- کلیدها دوباره شماره گذاری می شوند.
- برای حفظ کلیدها، uasort بهتر است.
- برای کلیدها، uksort را بزن.