<?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