codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
<?php $array = array('tea' => array('drink' => array('food' => null)), 'biscuits' => array('snack' => array('food' => null)), 'coke' => array('drink' => array('food' => null)), 'ford' => array('truck' => array('car' => null))); function flatten(array $array) { $key = array(key($array)); $val = current($array); if (is_array($val)) { $key = array_merge(flatten($val), $key); } return $key; } function build(array $path, array $result) { $key = array_shift($path); if (!isset($result[$key])) { $result[$key] = $path ? array() : null; } if ($path) { $result[$key] = build($path, $result[$key]); } return $result; } $result = array(); foreach ($array as $key => $value) { $result = build(flatten(array($key => $value)), $result); } print_r($result);
Private
[
?
]
Run code
Submit