Sorting Arrays

در PHP توابع زیادی برای مرتب‌سازی آرایه‌ها وجود داره. هر تابع کاربرد خاص خودش رو داره (برای آرایه‌های اندیسی، انجمنی، صعودی یا نزولی).

1️⃣ مرتب‌سازی آرایه اندیسی (Indexed Arrays)

🔸 ()sort → مرتب‌سازی صعودی (از کوچک به بزرگ یا A → Z)

<?php $fruits = ["Banana", "Apple", "Orange"]; sort($fruits); print_r($fruits); ?>

📌 خروجی:

Array ( [0] => Apple [1] => Banana [2] => Orange )

🔸 ()rsort → مرتب‌سازی نزولی (از بزرگ به کوچک یا Z → A)

<?php $fruits = ["Banana", "Apple", "Orange"]; rsort($fruits); print_r($fruits); ?>

📌 خروجی:

Array ( [0] => Orange [1] => Banana [2] => Apple )

2️⃣ مرتب‌سازی آرایه انجمنی (Associative Arrays)

🔸 ()asort → مرتب‌سازی بر اساس مقدار (صعودی)

<?php $ages = ["Ali" => 25, "Sara" => 22, "Reza" => 30]; asort($ages); print_r($ages); ?>

📌 خروجی:

Array ( [Sara] => 22 [Ali] => 25 [Reza] => 30 )

🔸 ()arsort → مرتب‌سازی بر اساس مقدار (نزولی)

<?php arsort($ages); print_r($ages); ?>

📌 خروجی:

Array ( [Reza] => 30 [Ali] => 25 [Sara] => 22 )

🔸 ()ksort → مرتب‌سازی بر اساس کلید (صعودی)

<?php ksort($ages); print_r($ages); ?>

📌 خروجی:

Array ( [Ali] => 25 [Reza] => 30 [Sara] => 22 )

🔸 ()krsort → مرتب‌سازی بر اساس کلید (نزولی)

<?php krsort($ages); print_r($ages); ?>

📌 خروجی:

Array ( [Sara] => 22 [Reza] => 30 [Ali] => 25 )

3️⃣ مرتب‌سازی بر اساس مقادیر عددی

🔸 ()sort و ()rsort به صورت خودکار اعداد رو هم مرتب می‌کنن:

<?php $numbers = [4, 2, 8, 1]; sort($numbers); print_r($numbers); // [1, 2, 4, 8] ?>

4️⃣ مرتب‌سازی با تابع دلخواه (usort)

اگر بخوایم قوانین مرتب‌سازی خودمون رو داشته باشیم:

<?php $numbers = [10, 2, 33, 25]; usort($numbers, function($a, $b) { return $a <=> $b; // مرتب‌سازی صعودی }); print_r($numbers); ?>

📌 خروجی:

Array ( [0] => 2 [1] => 10 [2] => 25 [3] => 33 )

📌 جمع‌بندی

  • Indexed Arrays()sort و ()rsort

  • Associative Arrays

    • مرتب‌سازی مقدار → ()asort و ()arsort

    • مرتب‌سازی کلید → ()ksort و ()krsort

  • مرتب‌سازی دلخواه → ()usort