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

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

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

How to Extract Array Elements Based on a Specific Key Prefix in PHP?

استخراج عناصر المصفوفة بناءً على توفر البادئة

في سيناريو حيث يكون لديك مصفوفة ببادئات مفاتيح مختلفة، يتم استخراج العناصر التي تبدأ بـ فقط يمكن أن تكون بادئة معينة مهمة مفيدة. لنفكر في مثال لمصفوفة:

array(
  'abc' => 0,
  'foo-bcd' => 1,
  'foo-def' => 1,
  'foo-xyz' => 0,
  // ...
)

التحدي: الاحتفاظ فقط بالعناصر التي تبدأ بـ 'foo-'.

المنهج الوظيفي:

$array = array_filter($array, function($key) {
    return strpos($key, 'foo-') === 0;
}, ARRAY_FILTER_USE_KEY);

تتحقق وظيفة array_filter مع الوظيفة المجهولة مما إذا كان مفتاح كل عنصر يبدأ بـ "foo-". إذا تم استيفاء هذا الشرط، فسيتم الاحتفاظ بالعنصر في المصفوفة المعدلة.

النهج الإجرائي:

$only_foo = array();
foreach ($array as $key => $value) {
    if (strpos($key, 'foo-') === 0) {
        $only_foo[$key] = $value;
    }
}

يتكرر هذا الأسلوب عبر المصفوفة، مع التحقق من كل مفتاح بحثًا عن البادئة "foo-". إذا تم العثور عليه، تتم إضافة العنصر إلى مصفوفة جديدة تحتوي فقط على تلك العناصر التي تستوفي المعيار.

المنهج الإجرائي باستخدام الكائنات:

$i = new ArrayIterator($array);
$only_foo = array();
while ($i->valid()) {
    if (strpos($i->key(), 'foo-') === 0) {
        $only_foo[$i->key()] = $i->current();
    }
    $i->next();
}

بهذه الطريقة، يتم استخدام كائن ArrayIterator لاجتياز المصفوفة الأصلية. يتم فحص كل مفتاح بحثًا عن البادئة "foo-"، وتتم إضافة العناصر المقابلة إلى مصفوفة جديدة.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3