إضافة قائمة بالمفتاح إلى مصفوفة متعددة الأبعاد
-
26-12-2019 - |
سؤال
سأحاول أن أكون مختصرا ، ولكن واضحا.على سبيل المثال:
$foo['test'] = array();
$foo2('test1','test2','test3','test4');
هل من الممكن إنشاء نوع من حلقة للحصول على هذه المجموعة متعددة الأبعاد?:
$foo['test']['test1']['test2']['test3']['test4'] = ...;
أنت لا تعرف مقدما كم من الوقت ستكون مجموعة foo فو2.آمل أن يكون سؤالي واضحا ولا يتوقف عن السؤال.
أي مساعدة هو موضع ترحيب!شكرا مقدما!
المحلول
لا أستطيع التفكير في حالة استخدام صالحة لهذا الغرض.ولكن يمكنك القيام بذلك مع المراجع (نسخة معدلة من هذه الإجابة)
$foo['test'] = array();
$foo2 = array('test1','test2','test3','test4');
$result = array();
$temp = &$result;
foreach($foo2 as $value) {
$temp[$value] = array();
$temp = &$temp[$value];
}
unset($temp);
$foo['test'] = $result;
var_dump($foo);
حل غبي وغبي باستخدام eval()
. هذا لا ينبغي أن تستخدم. أنا نشرها فقط للمتعة من ذلك؛)
$foo2 = array('test1','test2','test3','test4');
eval("\$res['".join("']['",$foo2)."']=[];");
$foo['test'] = $res;
لا تنتمي إلى StackOverflow