Aggiungi elenco di chiave a un array multidimensionale
-
26-12-2019 - |
Domanda
cercherò di essere breve, ma chiaro. Ad esempio:
$foo['test'] = array();
$foo2('test1','test2','test3','test4');
.
è possibile creare un po 'di ciclo per ottenere questo array multidimensionale ?:
$foo['test']['test1']['test2']['test3']['test4'] = ...;
.
Non sai in anticipo Quanto tempo sarà lungo la matrice $ foo2. Spero che la mia domanda sia chiara e non si ferma per chiedere.
Qualsiasi aiuto è il benvenuto! Grazie in anticipo!
Soluzione
Non riesco a pensare a un caso di utilizzo valido per questo.Ma puoi farlo con i riferimenti (versione modificata di questa risposta )
$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);
.
.
Una soluzione stupida e stupida usando eval()
. Non dovrebbe essere usato. Lo sto postando solo per il divertimento;)
$foo2 = array('test1','test2','test3','test4');
eval("\$res['".join("']['",$foo2)."']=[];");
$foo['test'] = $res;
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow