توابع پیشرفته آرایه

بررسی جامع توابع آرایه PHP — array_map، array_filter، array_reduce، array_column و ده‌ها تابع دیگر

توابع آرایه پیشرفته

PHP بیش از ۸۰ تابع برای کار با آرایه‌ها دارد. در این مبحث مهم‌ترین آن‌ها را بررسی می‌کنیم.

array_map() — اعمال تابع روی همه عناصر

<?php
$numbers = [1, 2, 3, 4, 5];

// ضرب هر عنصر در ۲
$doubled = array_map(fn($n) => $n * 2, $numbers);
// [2, 4, 6, 8, 10]

// بزرگ‌نویسی همه عناصر
$names = ["ali", "mary", "hassan"];
$upper = array_map("ucfirst", $names);
// ["Ali", "Mary", "Hassan"]
?>

array_filter() — فیلتر کردن عناصر

<?php
$numbers = [1, 2, 3, 4, 5, 6];

// فقط اعداد زوج
$evens = array_filter($numbers, fn($n) => $n % 2 === 0);
// [2, 4, 6]

// حذف مقادیر خالی
$data = ["a", "", "b", null, "c", 0];
$clean = array_filter($data);  // ["a", "b", "c"]
?>

array_reduce() — کاهش آرایه به یک مقدار

<?php
$numbers = [1, 2, 3, 4, 5];

// جمع همه
$sum = array_reduce($numbers, fn($carry, $n) => $carry + $n, 0);
// 15

// ضرب همه
$product = array_reduce($numbers, fn($carry, $n) => $carry * $n, 1);
// 120
?>

array_column() — استخراج ستون

<?php
$users = [
    ["id" => 1, "name" => "علی", "age" => 25],
    ["id" => 2, "name" => "مریم", "age" => 22],
    ["id" => 3, "name" => "حسن", "age" => 30],
];

$names = array_column($users, "name");
// ["علی", "مریم", "حسن"]

$ages = array_column($users, "age", "name");
// ["علی" => 25, "مریم" => 22, "حسن" => 30]
?>

array_chunk() — تقسیم آرایه

<?php
$items = ["a", "b", "c", "d", "e", "f"];
$chunks = array_chunk($items, 2);
// [["a","b"], ["c","d"], ["e","f"]]
?>

array_combine() — ترکیب کلید و مقدار

<?php
$keys = ["name", "age", "city"];
$values = ["علی", 25, "تهران"];

$combined = array_combine($keys, $values);
// ["name" => "علی", "age" => 25, "city" => "تهران"]
?>

array_flip() — جابجا کردن کلید و مقدار

<?php
$arr = ["a" => 1, "b" => 2, "c" => 3];
$flipped = array_flip($arr);
// [1 => "a", 2 => "b", 3 => "c"]
?>

array_unique() — حذف تکراری‌ها

<?php
$arr = [1, 2, 2, 3, 3, 3, 4];
$unique = array_unique($arr);
// [1, 2, 3, 4]
?>

array_slice() — برش آرایه

<?php
$arr = ["a", "b", "c", "d", "e"];

print_r(array_slice($arr, 1, 3));   // ["b", "c", "d"]
print_r(array_slice($arr, -2));     // ["d", "e"]
?>

array_merge() vs array_replace()

<?php
$a = ["a" => 1, "b" => 2];
$b = ["b" => 3, "c" => 4];

// merge: مقادیر دومی جایگزین می‌شود
$merged = array_merge($a, $b);  // ["a"=>1, "b"=>3, "c"=>4]

// replace: مثل merge ولی کلیدهای عددی را هم جایگزین می‌کند
$replaced = array_replace($a, $b);
?>

array_walk() — پیمایش با ارجاع

<?php
$fruits = ["apple", "banana", "cherry"];

array_walk($fruits, function(&$value, $key) {
    $value = ucfirst($value) . " ($key)";
});
// ["Apple (0)", "Banana (1)", "Cherry (2)"]
?>

توابع مرتب‌سازی پیشرفته

تابعتوضیح
usort()مرتب‌سازی با تابع سفارشی
uasort()مرتب‌سازی با حفظ کلید
uksort()مرتب‌سازی کلیدها با تابع
array_multisort()مرتب‌سازی چند آرایه

سایر توابع مفید

تابعتوضیح
array_sum()جمع مقادیر
array_product()ضرب مقادیر
array_rand()کلید تصادفی
array_fill()پر کردن با مقدار
range()تولید بازه اعداد
compact()ساخت آرایه از متغیرها
extract()استخراج متغیر از آرایه
array_diff()تفاضل دو آرایه
array_intersect()اشتراک دو آرایه

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط