我正在创建一个函数,用于查找数组中的最大值。但是,假设我有这个例子,
function MaxArray($arr)
{
return max($arr);
}
$arr = array(array(141,151,161), 2, 3, array(101, 202, array(303,404)));
print_r(MaxArray($arr));
这将返回值Array ( [0] => 141 [1] => 151 [2] => 161 )
我想要的输出是获得404,因为它是数组中的最高值。任何见解?感谢。
答案 0 :(得分:2)
作为功能的修改
function MaxInArray ($arr) {
$m = NULL;
foreach ($arr as $v) {
if (is_array($v)) $v = MaxInArray($v);
if (is_null($m) || $v > $m) $m = $v;
}
return $m;
}
让它递归。
答案 1 :(得分:0)
PHP具有许多内置的功能,用于展平或递归遍历数组,例如array_walk_recursive
Docs。例如,与anonymous functionDocs结合使用这可以通过一些小代码来解决:
array_walk_recursive($arr, function($v) use(&$max) {$max = max($v, $max);});
var_dump($max); # int(404)