✅ 30. array_map() – تطبيق دالة على كل عنصر في المصفوفة
$numbers = [1, 2, 3, 4];
$squared = array_map(function($num) {
return $num * $num;
}, $numbers);
print_r($squared); // [1, 4, 9, 16]PHP🟢 الفائدة: لتعديل أو تحويل العناصر دون استخدام
foreach.
⚠️ محذور: يُرجع مصفوفة جديدة، لا يُعدّل الأصلية.
✅ 31. array_filter() – تصفية المصفوفة حسب شرط
$nums = [1, 2, 3, 4, 5, 6];
$even = array_filter($nums, function($n) {
return $n % 2 === 0;
});
print_r($even); // [2, 4, 6]PHP🟢 الفائدة: تصفية العناصر بدون استخدام حلقة
foreach.
⚠️ محذور: يحتفظ بالمفاتيح الأصلية.
✅ 32. array_reduce() – اختصار المصفوفة إلى قيمة واحدة
$nums = [1, 2, 3, 4];
$sum = array_reduce($nums, function($carry, $item) {
return $carry + $item;
});
echo $sum; // 10PHP🟢 الفائدة: تستخدم في عمليات مثل الجمع، الضرب، التحقق من الشروط العامة… إلخ.
⚠️ محذور: القيمة الأوليةcarryتبدأ بـnullما لم تُحدد.
✅ 33. array_walk() – تنفيذ دالة على كل عنصر (يمرر بالقيمة والمفتاح)
$students = ["Ali" => 90, "Sara" => 80];
array_walk($students, function($value, $key) {
echo "$key حصل على $value درجة\n";
});PHP🟢 الفائدة: مفيدة للطباعة أو التعديل الشرطي.
⚠️ محذور: للتعديل على المصفوفة نفسها، استخدم&$value.
✅ 34. compact() – تحويل متغيرات إلى مصفوفة
$name = "Yasin";
$age = 25;
$data = compact("name", "age");
print_r($data); // ["name" => "Yasin", "age" => 25]PHP🟢 الفائدة: مفيد جدًا في إرسال بيانات كثيرة دفعة واحدة (مثلًا إلى view في Laravel أو ملفات HTML).
✅ 35. extract() – تحويل مصفوفة إلى متغيرات
$user = ["name" => "Yasin", "age" => 25];
extract($user);
echo $name; // Yasin
echo $age; // 25PHP⚠️ محذور مهم: قد يكتب فوق متغيرات موجودة بنفس الاسم، لذلك استخدمه بحذر.
🟢 يفيد: في اختصار الشيفرة في views أو الصفحات المؤقتة.
✅ 36. array_column() – استخراج عمود معين من مصفوفة متعددة الأبعاد
$users = [
["id" => 1, "name" => "Ali"],
["id" => 2, "name" => "Sara"],
["id" => 3, "name" => "Yasin"]
];
$names = array_column($users, "name");
print_r($names); // ["Ali", "Sara", "Yasin"]PHP🟢 الفائدة: تجميع قيم من مصفوفات متعددة الأبعاد.
✅ 37. array_combine() – دمج مصفوفتين: واحدة مفاتيح والثانية قيم
$keys = ["name", "age"];
$values = ["Yasin", 25];
$combined = array_combine($keys, $values);
print_r($combined); // ["name" => "Yasin", "age" => 25]
PHP⚠️ محذور: يجب أن تكون المصفوفتان بنفس الطول وإلا ستعطي خطأ.
ملخص استخدامي سريع:
| الدالة | الوظيفة الأساسية |
|---|---|
array_map() | تعديل جماعي على كل عنصر |
array_filter() | إبقاء عناصر تحقق شرط معيّن |
array_reduce() | اختصار المصفوفة لقيمة واحدة |
array_walk() | تنفيذ دالة على كل عنصر (طباعة – تعديل – تنبيه) |
compact() | تحويل متغيرات إلى مصفوفة |
extract() | تحويل مصفوفة إلى متغيرات |
array_column() | سحب عمود من مصفوفات متعددة الأبعاد |
array_combine() | دمج مفاتيح وقيم من مصفوفتين في مصفوفة واحدة |
🔹 38. array_flip() – تبادل المفاتيح مع القيم
🔁 تقوم هذه الدالة بعكس مواقع المفاتيح والقيم في المصفوفة.
✅ مثال:
$colors = [
"red" => 1,
"green" => 2,
"blue" => 3
];
$flipped = array_flip($colors);
print_r($flipped);
// النتيجة:
[
1 => "red",
2 => "green",
3 => "blue"
]PHP✅ الفوائد:
- مفيد عند الحاجة للبحث عن القيمة كمفتاح.
- تُستخدم كثيرًا عند إنشاء جداول مرجعية.
⚠️ محاذير:
- القيم يجب أن تكون مميزة وفريدة، وإلا سيتم الكتابة فوق بعضها.
- لا يمكن استخدام قيم تحتوي على Arrays أو Objects.
🔹 39. array_keys() و array_values()
✅ array_keys() – استخراج المفاتيح فقط:
$user = [
"name" => "Yasin",
"age" => 25
];
$keys = array_keys($user);
print_r($keys); // ["name", "age"]PHP✅ array_values() – استخراج القيم فقط:
$values = array_values($user);
print_r($values); // ["Yasin", 25]PHP✅ الفوائد:
- مفيدة في عمليات التحقق، التكرار، التحليل البرمجي (parsing).
- تستخدم لتصفية أو فحص المفاتيح فقط أو القيم فقط.
⚠️ محاذير:
array_keys()يُمكن أن يُستخدم مع فلترة حسب قيمة أيضًا:
array_keys($user, 25); // تبحث عن المفاتيح التي قيمتها 25PHP🔹 40. array_key_first() و array_key_last()
✅ array_key_first() – إرجاع أول مفتاح:
$data = ["first" => 1, "second" => 2, "third" => 3];
echo array_key_first($data); // firstPHP✅ array_key_last() – إرجاع آخر مفتاح:
echo array_key_last($data); // thirdPHP✅ الفوائد:
- أفضل من استخراج
array_keys()ثم استخدامreset()أوend()لأنها أسرع وأخف.
⚠️ محاذير:
- يجب التأكد من أن المصفوفة ليست فارغة، وإلا سترجع
null.
🔹 41. key_exists() (مرادف لـ array_key_exists())
$data = ["name" => "Yasin", "age" => 25];
if (key_exists("name", $data)) {
echo "الاسم موجود";
}PHP✅ ملاحظة:
key_exists()وarray_key_exists()هما نفس الشيء تمامًا.key_exists()جاءت لاحقًا من PHP 7.3 كاسم بديل بسيط.
✅ الفوائد:
- يستخدم عند الحاجة للتأكد من وجود مفتاح معين داخل المصفوفة.
- يختلف عن
isset()لأنه يتحقق حتى لو القيمةnull.
⚠️ مقارنة سريعة:
| الدالة | تتحقق من المفتاح؟ | تعتبر القيمة null كـ “موجودة”؟ |
|---|---|---|
isset($array['x']) | ✅ | ❌ |
array_key_exists('x', $array) | ✅ | ✅ |
📌 ملخص سريع:
| الدالة | الوظيفة الرئيسية |
|---|---|
array_flip() | عكس المفاتيح مع القيم |
array_keys() | جلب المفاتيح فقط |
array_values() | جلب القيم فقط |
array_key_first() | أول مفتاح في المصفوفة |
array_key_last() | آخر مفتاح في المصفوفة |
key_exists() / array_key_exists() | التحقق من وجود مفتاح معين |