Menu
flag Ar iconالعربيةdown icon

الدالة array_column() في PHP: استخراج عمود من الصفوف

تعيد array_column($rows, 'email') حقل البريد من كل صف في مصفوفة مسطحة. تعلّم وسيط مفتاح الفهرس، وإعادة فهرسة الصفوف بالمعرّف، واستخدامها مع الكائنات، وإيجاد صف بـ array_search.

تحتوي هذه الصفحة على محررات قابلة للتشغيل - حرّر، شغّل، وشاهد النتيجة فوراً.

تعيد array_column($rows, $column) قيمة $column من كل صف في قائمة من الصفوف. تحوّل جدولًا من السجلات إلى مصفوفة مسطحة لحقل واحد، وهذا ما تحتاجه قبل implode أو in_array أو array_sum أو array_search.

يمكن أن تأتي الصفوف من أي مكان: استجابة JSON بعد فك ترميزها، أو ملف CSV، أو استعلام قاعدة بيانات أعاد مصفوفة من المصفوفات الترابطية.

استخدام مفتاح الفهرس لبناء أزواج المفتاح والقيمة

يسمّي الوسيط الثالث حقلًا تصبح قيمته مفتاح كل نتيجة. array_column($users, 'name', 'id') هي الطريقة المعتادة لبناء جدول بحث من المعرّف إلى الاسم، مثلًا لقائمة <select>.

إذا تشارك صفان قيمة الفهرس نفسها، يستبدل الصف اللاحق السابق.

فهرسة الصفوف كاملة بالمعرّف مع null

مرّر null عمودًا لتحتفظ بكل صف كاملًا، بمفتاح جديد من حقل الفهرس. عندها يصبح البحث عن صف بمعرّفه وصولًا مباشرًا بالمفتاح بدل حلقة.

ابنِ الفهرس مرة واحدة فيصبح كل بحث بعده فوريًا، وهذا مهم عندما تبحث عن معرّفات كثيرة في حلقة.

إيجاد صف بـ array_column وarray_search

لمعرفة أي صف يحمل قيمة معينة، ابحث في العمود واستخدم الموضع الذي تحصل عليه. افحص النتيجة بـ !== false، لأن التطابق في الصف الأول يعيد 0.

يعتمد هذا على أن مفاتيح $users هي 0, 1, 2، لأن array_column تعيد قائمة. وإذا صُفّيت المصفوفة وفيها فجوات، فاستدعِ array_values($users) أولًا. وتشرح صفحة array_search فخ false مقابل 0 بالتفصيل.

جمع عمود أو عدّه أو حساب متوسطه

تتلاءم array_column مع الدوال الرياضية المساعدة: استخرج الحقل، ثم اجمعه.

لقيمة محسوبة من عدة حقول، مثل الكمية مضروبة في السعر، تكون array_map هي الأداة، كما في السطر الأخير.

array_column مع الكائنات

مع قائمة من الكائنات، تقرأ array_column الخصائص العامة. ولا ترى الخصائص الخاصة والمحمية.

يعيد الاستدعاء الثاني مصفوفة فارغة: password خاصة، فيُتخطى كل كائن.

تُتخطى الصفوف التي ينقصها حقل

لا تضع array_column قيمة بديلة لصف ينقصه الحقل. قد تكون النتيجة أقصر من المُدخل، فلا تعود مواضعها مطابقة للصفوف.

في النتيجة الأولى رقمان للهاتف دون أي إشارة إلى أن Bob ليس لديه رقم. ومع الاسم مفتاحًا للفهرس، يمكنك أن ترى لمن كل رقم، وهي الصيغة الأكثر أمانًا كلما أمكن أن ينقص الحقل بعض الصفوف.

الأسئلة الشائعة

ماذا تفعل array_column في PHP؟

تأخذ قائمة من الصفوف (مصفوفات أو كائنات) وتعيد قيمة حقل واحد من كل صف: تعطي array_column($users, 'email') مصفوفة مسطحة من عناوين البريد. وتُتخطى الصفوف التي لا تحتوي الحقل.

كيف أصنع مصفوفة مفتاح وقيمة من الصفوف؟

مرّر حقل المفتاح وسيطًا ثالثًا: تعيد array_column($users, 'name', 'id') المصفوفة [id => name, ...]. ومرّر null وسيطًا ثانيًا، array_column($users, null, 'id')، لتحتفظ بالصفوف كاملة مفهرسة بالمعرّف.

ماذا تفعل array_column عندما ينقص الحقلُ صفًا؟

تتخطى ذلك الصف، لذا قد تعيد array_column($people, 'phone') قيمًا أقل من عدد الصفوف ولا تعود المواضع متطابقة. أضف مفتاح فهرس، array_column($people, 'phone', 'name')، لترى من أي صف جاءت كل قيمة.

هل تعمل array_column مع الكائنات؟

نعم، مع مصفوفة من الكائنات تقرأ الخصائص العامة، وكذلك الخصائص المتاحة عبر __get عندما يعرّف الصنف __isset. وتُتخطى الخصائص الخاصة والمحمية.

رسم توضيحي للغات البرمجة في Coddy

تعلّم البرمجة مع Coddy

ابدأ الآن