fork download
  1. <?php
  2.  
  3. $array = array(
  4. 'files' => array(
  5. 'a' => array(
  6. 'ab' => array(
  7. 0 => 'ab.jpg',
  8. ),
  9. 0 => 'abc.jpg',
  10. ),
  11. 'b' => array(
  12. 'ba' => array(
  13. 'bac' => array(
  14. 0 => 'abc.jpg',
  15. ),
  16. 'bac' => array(
  17. 0 => 'abd.jpg',
  18. ),
  19. ),
  20. ),
  21. ),
  22. );
  23.  
  24. var_dump(array_search_key_recursive('bac', $array));
  25.  
  26. function array_search_key_recursive($key, array $array) {
  27. foreach ($array as $i => $child) {
  28. if ($i === $key) {
  29. return $i;
  30. }
  31. if (!is_array($child)) {
  32. continue;
  33. }
  34. if (false !== $j = array_search_key_recursive($key, $child)) {
  35. return "{$i}->{$j}";
  36. }
  37. }
  38. return false;
  39. }
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
string(17) "files->b->ba->bac"