"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استخراج عمود من الخصائص من مجموعة من الكائنات في PHP؟

كيفية استخراج عمود من الخصائص من مجموعة من الكائنات في PHP؟

تم النشر بتاريخ 2024-11-06
تصفح:147

How to Extract a Column of Properties from an Array of Objects in PHP?

PHP: استخراج عمود من الخصائص بكفاءة من مجموعة من الكائنات

تتضمن العديد من سيناريوهات البرمجة العمل مع صفائف من الكائنات، حيث يكون كل كائن قد يكون لها خصائص متعددة. في بعض الأحيان، يصبح من الضروري استخراج خاصية معينة من كل كائن لتشكيل مصفوفة منفصلة. في PHP، قد يكون تحقيق هذا الهدف في سطر واحد، دون اللجوء إلى الحلقات أو الوظائف الخارجية، أمرًا صعبًا.

أحد الأساليب المحتملة هو استخدام وظيفة array_walk() مع create_function. ومع ذلك، يتوفر حل أكثر وضوحًا وأناقة في الإصدار PHP 7.0 والإصدارات الأحدث.

array_column() to the Rescue

تم تقديم وظيفة array_column() في PHP 7.0 ويسمح لك باستخراج عمود معين من البيانات من مجموعة من المصفوفات أو صفائف من الكائنات. ما عليك سوى تمرير مجموعة الكائنات الخاصة بك كمعلمة أولى واسم الخاصية المطلوبة كمعلمة ثانية:

$idCats = array_column($cats, 'id');

في هذا المثال، سيحتوي المتغير $idCats الآن على مصفوفة من معرفات جميع كائنات القطط.

ملاحظة لإصدارات PHP قبل 7.0

إذا كنت تستخدم إصدار PHP أقدم من 7.0، فلا يزال بإمكانك استخدام وظيفة array_map():

$idCats = array_map(function($cat) { return $cat->id; }, $cats);

على الرغم من أن هذه الطريقة مطولة قليلاً، إلا أنها تحقق نفس الشيء النتيجة.

من خلال الاستفادة من array_column() أو array_map()، يمكنك بكفاءة استخراج عمود من الخصائص من مجموعة من الكائنات في PHP، مما يتيح لك تبسيط التعليمات البرمجية الخاصة بك وتحسين الأداء.

بيان الافراج أعيد طبع هذه المقالة على: 1729386019 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3