Ci sono un sacco di suggerimenti ed esempi di codici disponibili per accedere agli array PHP con notazione dot, ma mi piacerebbe fare un po 'il contrario. Vorrei prendere un array multidimensionale come questo:PHP - Conversione di array multidimensionali in array 2D con tasti di notazione dot
$myArray = array(
'key1' => 'value1',
'key2' => array(
'subkey' => 'subkeyval'
),
'key3' => 'value3',
'key4' => array(
'subkey4' => array(
'subsubkey4' => 'subsubkeyval4',
'subsubkey5' => 'subsubkeyval5',
),
'subkey5' => 'subkeyval5'
)
);
e trasformarlo in questa (probabilmente attraverso qualche funzione ricorsiva):
$newArray = array(
'key1' => 'value1',
'key2.subkey' => 'subkeyval',
'key3' => 'value3',
'key4.subkey4.subsubkey4' => 'subsubkeyval4',
'key4.subkey5.subsubkey5' => 'subsubkeyval5',
'key4.subkey5' => 'subkeyval5'
);
ho pensato array_walk_recursive potrebbe essere in grado di aiutarmi a costruire le nuove chiavi in quanto sembrava che potesse fare un sacco di sollevamento di carichi pesanti con la ricorsione, ma non fornisce * tutte * le chiavi del array. Ad esempio, l'uso di array_walk_recursive su $ myArray (come eseguito attraverso la funzione di esempio nella pagina di documentazione di PHP) mi fornisce solo le chiavi che non hanno valori di array. Sto continuando a provare a scrivere la mia funzione ricorsiva con un buon vecchio ciclo foreach ma è stata una lunga giornata e mi fa male la testa. Continuerò a farlo e aggiornerò se lo avrò (o più vicino) – TheCheese