<?php
$testArray= array(
'test1' => 'SingleValue1',
'test2' => 'SingleValue2',
'test3' => array(0,1,2),
'test4' => array(array(3,4,array(5,6,7)), array(8,9,array(10,11,12)),13,14),
'test5' => array(15,16,17, array(18,19,20))
);
function deepestArrays($array,$level=0,&$lowest=[]){
if(sizeof($subarrays=array_filter($array,function($v){return is_array($v);}))){ // isolate subarrays, iterate if any
foreach($subarrays as $subs){
deepestArrays($subs,$level+1,$lowest); // recurse each subarray
}
}else{
if(!sizeof($lowest) || ($lowest_level=key($lowest))==$level){ // if $levels is empty or current $level equals $lowest_level
$lowest[$level][]=$array; // append the array to the results
}elseif($lowest_level<$level){
$lowest=[$level=>[$array]]; // clear previous storage, store new lowest array
}
}
return current($lowest); // use current() to strip the temporary level identifying key
}
var_export(deepestArrays($testArray));
- Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 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.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
0 =>
array (
0 => 5,
1 => 6,
2 => 7,
),
1 =>
array (
0 => 10,
1 => 11,
2 => 12,
),
)
- Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
- Parse error: syntax error, unexpected '[' in /in/unVR5 on line 10
Process exited with code 255. - Output for 5.0.0 - 5.0.5
- Parse error: parse error, unexpected '[' in /in/unVR5 on line 10
Process exited with code 255. - Output for 4.4.2 - 4.4.9
- Parse error: syntax error, unexpected '=', expecting ')' in /in/unVR5 on line 10
Process exited with code 255. - Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
- Parse error: parse error, unexpected '=', expecting ')' in /in/unVR5 on line 10
Process exited with code 255. - Output for 4.3.2 - 4.3.4
- Parse error: parse error, expecting `')'' in /in/unVR5 on line 10
Process exited with code 255.
preferences:
359.82 ms | 401 KiB | 466 Q