3v4l.org

run code in 300+ PHP versions simultaneously
<?php function recursive_select($data, callable $callback, $flag = \RecursiveIteratorIterator::SELF_FIRST, $preserve_keys = FALSE) { return iterator_to_array(new \CallbackFilterIterator(new \RecursiveIteratorIterator(new \RecursiveArrayIterator($data), $flag), $callback), $preserve_keys); } $multi=[['A',['B',['CC','CCCC','CCCCCC'],['DDD','EFG','HIJ','LMNOP']]],['2'],'b',[[],[],[]]]; $array = array(1,2,[3,4],5,'six',array(array('78',9)),10); $multi_output = recursive_select($multi, function ($value) { return is_string($value); }); $array_output = recursive_select($array, function ($value) { return is_numeric($value) || is_string($value); }); var_dump($multi_output, $array_output);

preferences:
55.66 ms | 402 KiB | 5 Q