Вставить строку в вложенный массив

Я хотел бы преобразовать эти строки в объединенный вложенный массив:

array( 'item1:item2:itemx', 'item1:item2:itemy', 'itemz' ) 

к

 array( 'item1' => array( 'item2' => array( 'itemx' => array(), 'itemy' => array(), ) ) 'itemz' => array() ) 

Есть ли способ сделать это с помощью цикла explode / foreach?

На этот вопрос было дано множество ответов … пожалуйста, используйте поиск, прежде чем публиковать новый вопрос.

Во всяком случае, вот одно решение:

 $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);