لقد بحثت في محاولة العثور على مثال لسحب حقل محدد من مصفوفة. يمكنني سحب الحقول بناءً على اسم المفتاح بشكل جيد ، ولكن لدي مشكلة في تحديد كيفية استخدام CFP لسحب قيمة من مصفوفة باستخدام PHP.
فإن أي مساعدة موضع تقدير كبير. لقد أقدر كثيرًا إتاحة المكتبة حتى الآن ، شكرًا يا رفاق!
أهلا،
أعتقد أنني لا أفهم ما تعنيه ب "سحب قيمة من مصفوفة". ربما يمكنني مساعدتك إذا كان بإمكانك توضيح حاجتك لي.
إذا كان بإمكانك القيام بذلك بناءً على اسم المفتاح ، فهل حاولت استخدام array_flip ، من أجل استخدام القيم كمفاتيح في المصفوفة الخاصة بك؟
اعتذاري ، لم أشرح بشكل صحيح.
كان لدي مجموعة من الإدخالات ، ثم ضمن كل إدخال مجموعة من التعريفات ، إلى جانب مصفوفة أخرى. لم يكن الأمر جميلًا ، ومن المحتمل أن تكون هناك طرق أفضل للقيام بذلك ، لكن هذه كانت طريقة الحل الخاصة بي:
$root = $plist->getValue(true);
$entries = $root->get('Entries');
foreach ($entries as $entry) {
$topalias = $entry->get('versions')->getValue();
foreach ($topalias as $subvalue) {
$finalvalue = $subvalue->get('versionAliases')->getValue();
}
$versionalias = $finalvalue;
}
لقد كانت Versionalias $ هي الإدخال الذي كنت أسحبه من مصفوفة الطبقة الثانية. مرة أخرى ، ليست جميلة ، لكنها نجحت.
شكرًا للاستجابة السريعة ، وإذا كانت هناك طريقة أكثر فاعلية ، فأنا أحب سماعها. شكرا!
كما هو الحال اليوم API ، لا يوجد نهج أكثر كفاءة من الذي اخترته. من حيث العمل مع $plist
هذا هو. يمكن للمرء على الأرجح تحسين التكرار (إلا إذا كنت تريد حقًا آخر $finalvalue
من آخر $entry
).
ومع ذلك ، سيكون من الممكن تنفيذ نهج xPath / CSS-selector للتنقل داخل $plist
. شيء من شأنه تحويل الشيء الحلقي أعلاه إلى $versionalias = $plist->find('versions:last/versionAliases:last')->getValue();
سأكون سعيدًا لدمج العلاقات العامة لحل هذا ؛)