我有多维数组,我需要得到一个最小值。数组可能是[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
2 回答

收到一只叮咚
TA贡献1821条经验 获得超5个赞
您可以使用array_walk_recursive()函数来展平给定的数组(使其成为一维)。
然后使用简单min()的函数来获得所需的输出。
array_walk_recursive($arr, function($v) use (&$res){
$res[]=$v;
});
echo min($res);

慕标琳琳
TA贡献1830条经验 获得超9个赞
<?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
回声 $GLOBALS["min"]; ?>
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消