array_filter()
دالة array_filter array_filter()
تُبقي فقط عناصر المصفوفة التي تُرجع الدالة الممرَّرة لها true، مع الحفاظ على المفاتيح الأصلية.
array_filter(array, callback, mode) تفحص كل عنصر عبر callback؛ إن أعادت true يبقى العنصر وإلا يُحذف. المفاتيح تبقى كما هي، ما قد يترك فجوات في الترقيم الرقمي — استخدم array_values() لإعادة الترقيم إن أردت.
إن حُذف callback تُزال كل القيم الفارغة (بمنطق empty()). معامل mode يتحكّم بما يصل للدالة: القيمة فقط (افتراضي)، المفتاح فقط (ARRAY_FILTER_USE_KEY)، أو كلاهما (ARRAY_FILTER_USE_BOTH بترتيب القيمة ثم المفتاح).
الصياغة
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
📄 مثال
$nums = [1, 2, 3, 4, 5, 6]; $even = array_filter($nums, fn($n) => $n % 2 === 0); print_r($even); // [1 => 2, 3 => 4, 5 => 6] print_r(array_values($even)); // [2, 4, 6]
أهم النقاط
| العنصر | الوظيفة |
|---|---|
| ARRAY_FILTER_USE_KEY | يمرّر المفتاح فقط للدالة بدل القيمة |
| ARRAY_FILTER_USE_BOTH | يمرّر القيمة ثم المفتاح معًا للدالة |
💡 نصائح عملية
- استخدم array_values() بعد الفلترة إن احتجت فهارس متسلسلة من 0
⚠️ أخطاء شائعة
- الاعتماد على ترقيم متسلسل بعد array_filter دون التحقّق
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.