如何获得数组的最小值

时间:2019-11-29 05:32:47

标签: php arrays algorithm

我有多维数组,我需要获得一个最小值。

数组可以是[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 个答案:

答案 0 :(得分:2)

您可以使用array_walk_recursive()函数来展平给定的数组(使其成为一维的)。

并仅使用min()函数即可在之后获得所需的输出。

array_walk_recursive($arr, function($v) use (&$res){
    $res[]=$v; 
});

echo min($res);

Demo

答案 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”];     ?>