Insert string into nested array
I would like to convert these strings to a concatenated nested array:
array(
'item1:item2:itemx',
'item1:item2:itemy',
'itemz'
)
For
array(
'item1' => array(
'item2' => array(
'itemx' => array(),
'itemy' => array(),
)
)
'itemz' => array()
)
Is there a way to do this with an explode / foreach loop?
+3
source to share
1 answer
This question has been asked countless times ... please use search before posting a new question.
Anyway, here's one solution:
$strings = array(
'item1:item2:itemx',
'item1:item2:itemy',
'itemz'
);
$nested_array = array();
foreach($strings as $item) {
$temp = &$nested_array;
foreach(explode(':', $item) as $key) {
$temp = &$temp[$key];
}
$temp = array();
}
var_dump($nested_array);
+9
source to share