fork download
  1. <?php
  2.  
  3. $array = array(
  4. 'a' => array(
  5. 'b' => array(
  6. 'c' => 'val'
  7. ),
  8. 'd' => 'val2'
  9. ),
  10. 'e' => 'val3'
  11. );
  12.  
  13. var_dump(collapse($array));
  14.  
  15. function collapse($array)
  16. {
  17. $result = array();
  18. foreach ($array as $key => $val) {
  19. if (is_array($val)) {
  20. foreach (collapse($val) as $nested_key => $nested_val) {
  21. $result[$key . '.' . $nested_key] = $nested_val;
  22. }
  23. } else {
  24. $result[$key] = $val;
  25. }
  26. }
  27.  
  28. return $result;
  29. }
Success #stdin #stdout 0.02s 13112KB
stdin
Standard input is empty
stdout
array(3) {
  ["a.b.c"]=>
  string(3) "val"
  ["a.d"]=>
  string(4) "val2"
  ["e"]=>
  string(4) "val3"
}