تخطَّ إلى المحتوى

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 الكامل بالعربي.