我有多维数组,我需要获得一个最小值。
数组可以是[65,4,4,511,5,[[54,54[.[.[..].].]]
,依此类推。
示例代码
<?php
$arr = [5, 1 , 2, 3, [1,5,59,47,58,[0,12,562]]];
function NumMin($arr)
{
$num = '';
foreach ($arr as $item => $i) {
if(is_array($i)){
NumMin($i);
}
else{
$num .= $i.',';
}
}
$num .= $num;
return $num;
}
$g = NumMin($arr);
var_dump($g);
我需要得到0
答案 0 :(得分:2)
您可以使用array_walk_recursive()函数来展平给定的数组(使其成为一维的)。
并仅使用min()
函数即可在之后获得所需的输出。
array_walk_recursive($arr, function($v) use (&$res){
$res[]=$v;
});
echo min($res);
答案 1 :(得分:0)
<?php
$GLOBALS["min"] = 999999; //min value int
$arr = [[[5,6],7],9,7,5, 1 , 2, 3, [1,5,59,47,58,[1,12,562]]];
array_walk_recursive($arr, 'NumMin');
function NumMin($item)
{
if(intval($item) <= intval($GLOBALS["min"]))
{
$GLOBALS["min"] = intval($item);
}
}
// The end, $GLOBALS["min"] will have the least value
echo $ GLOBALS [“ min”]; ?>