<?php
$array = [
[1,2,3 => [4, 5, 6, 7=>[8]]],
[1,2,3 => [4, 5, 6, 7=>[8, 9]]]
];
function recursive_count($array, $max_depth=12) {
static $stack_depth = 0;
$total = 0;
foreach($array as $val) {
if (is_array($val)) {
$stack_depth++;
if($max_depth < $stack_depth) {
$stack_depth = 0;
throw new Exception("Stack level too deep! Stack Limit: $max_depth");
}
$total += recursive_count($val, $max_depth);
}
else {
$total++;
}
}
$stack_depth--;
return $total;
}
var_dump(recursive_count($array,2));
preferences:
68.98 ms | 402 KiB | 5 Q