Я хотел бы преобразовать эти строки в объединенный вложенный массив:
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);