✅ 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; // 10
PHP🟢 الفائدة: تستخدم في عمليات مثل الجمع، الضرب، التحقق من الشروط العامة… إلخ.
⚠️ محذور: القيمة الأولية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; // 25
PHP⚠️ محذور مهم: قد يكتب فوق متغيرات موجودة بنفس الاسم، لذلك استخدمه بحذر.
🟢 يفيد: في اختصار الشيفرة في 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); // تبحث عن المفاتيح التي قيمتها 25
PHP🔹 40. array_key_first()
و array_key_last()
✅ array_key_first()
– إرجاع أول مفتاح:
$data = ["first" => 1, "second" => 2, "third" => 3];
echo array_key_first($data); // first
PHP✅ array_key_last()
– إرجاع آخر مفتاح:
echo array_key_last($data); // third
PHP✅ الفوائد:
- أفضل من استخراج
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() | التحقق من وجود مفتاح معين |