3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = ['foo' => ['bar' => 'lol', 'asdf' => ['rofl', ['haha' => 'lmao'], 'lawl']], ['hehe' => 'haha']]; function getLeafsWithKeys(array $array, array $keys = []): array { $result = []; foreach ($array as $key => $value) { $new_keys = is_numeric($key) ? $keys : array_merge($keys, [$key]); if (is_array($value)) { $result = array_merge([], ...[$result, getLeafsWithKeys($value, $new_keys)]); } else { $result[implode(' > ', $new_keys)][] = $value; } } return $result; } print_r(getLeafsWithKeys($array));
Output for 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
Array ( [foo > bar] => Array ( [0] => lol ) [foo > asdf] => Array ( [0] => rofl [1] => lawl ) [foo > asdf > haha] => Array ( [0] => lmao ) [hehe] => Array ( [0] => haha ) )

preferences:
154.32 ms | 408 KiB | 5 Q