مرتبسازی آرایهها
مرتبسازی آرایهها با sort، rsort، asort، ksort و توابع مرتبسازی PHP
توابع مرتبسازی در PHP
PHP چندین تابع برای مرتبسازی آرایهها دارد:
| تابع | توضیح | حفظ کلید؟ |
|---|---|---|
sort() | صعودی (A-Z) | ❌ خیر |
rsort() | نزولی (Z-A) | ❌ خیر |
asort() | صعودی بر اساس مقدار | ✅ بله |
arsort() | نزولی بر اساس مقدار | ✅ بله |
ksort() | صعودی بر اساس کلید | ✅ بله |
krsort() | نزولی بر اساس کلید | ✅ بله |
sort() — مرتبسازی صعودی
<?php
$numbers = [5, 2, 8, 1, 9, 3];
sort($numbers);
// [1, 2, 3, 5, 8, 9]
$names = ["زهرا", "علی", "مریم"];
sort($names);
// ["علی", "مریم", "زهرا"]
?>
rsort() — مرتبسازی نزولی
<?php
$numbers = [5, 2, 8, 1, 9, 3];
rsort($numbers);
// [9, 8, 5, 3, 2, 1]
?>
asort() — مرتبسازی آرایه انجمنی
<?php
$ages = [
"علی" => 25,
"مریم" => 22,
"حسن" => 28
];
asort($ages); // بر اساس مقدار (سن)
// مریم => 22, علی => 25, حسن => 28
?>
ksort() — مرتبسازی بر اساس کلید
<?php
$ages = [
"زهرا" => 25,
"علی" => 22,
"مریم" => 28
];
ksort($ages); // بر اساس کلید (نام)
// علی => 22, زهرا => 25, مریم => 28
?>
اگر کلیدهای آرایه انجمنی برایتان مهم است، از
asort/ksort استفاده کنید. sort کلیدها را از بین میبرد!مرتبسازی سفارشی — usort()
برای مرتبسازی با منطق دلخواه:
<?php
$products = [
["name" => "لپتاپ", "price" => 50000000],
["name" => "موس", "price" => 350000],
["name" => "کیبورد", "price" => 850000]
];
usort($products, function($a, $b) {
return $a["price"] - $b["price"];
});
// مرتب شده بر اساس قیمت (صعودی)
?>
این مبحث بخشی از دوره آموزش کامل PHP است.