简体   繁体   English

如何获取数组最小值

[英]How to get array min value

I have multidimensional array and me need to get a minimum value.我有多维数组,我需要获得最小值。

Array may be [65,4,4,511,5,[[54,54[.[.[..].].]] and so on.数组可能是[65,4,4,511,5,[[54,54[.[.[..].].]]等等。

example code示例代码

<?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);

I need to get 0我需要得到0

You can usearray_walk_recursive() function to flatten a given array (makes it one-dimensional).您可以使用array_walk_recursive()函数来展平给定数组(使其成为一维)。

And use simply min() function for getting the desired output after.然后使用简单的min()函数来获得所需的输出。

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

echo min($res);

Demo演示

<?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"]; echo $GLOBALS["min"]; ?> ?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM