在PHP数组中查找最大值

在PHP数组中查找最大值,php,arrays,Php,Arrays,以下是我的阵列: Array ( [3] => Array ( [2] => 3 [4] => 1 [5] => 2 [6] => 2 ) [5] => Array ( [2] => 1 [3] => 2 [4] =&

以下是我的阵列:

Array
(
    [3] => Array
        (
            [2] => 3
            [4] => 1
            [5] => 2
            [6] => 2
        )

    [5] => Array
        (
            [2] => 1
            [3] => 2
            [4] => 3
            [6] => 3
        )
在这个数组中,我想找到最大值,如果数组包含相同的最大值,那么我们随机选择一个最大值

预期产出如下:

Array
(
    [3] => Array
        (
            [2] => 3

        )

    [5] => Array
        (

            [4] => 3

        )

    [6] => Array
        (
            [2] => 3

        )

)
这就是我尝试过的:

$found = Array( [3] => Array ( [2] => 3 [4] => 1 [5] => 2 [6] => 2 ) [5] => Array ( [2] => 1 [3] => 2 [4] => 3 [6] => 3 ) [6] => Array ( [2] => 3 [3] => 2 [4] => 2 [5] => 3 )) 
$fmaxnum = array(); 

foreach($found as $fk => $fv){ 
   $fmaxnum[$fk] = max($fv); 
} 
echo "<pre>";print_r($fmaxnum);echo "</pre>"
$found=Array([3]=>Array([2]=>3[4]=>1[5]=>2[6]=>2[5]=>Array([2]=>1[3]=>2[4]=>3[6]=>Array([2]=>3[3]=>2[4]=>2[5]=>3))
$fmaxnum=array();
foreach($fk=>$fv){
$fmaxnum[$fk]=最大值($fv);
} 
回声“;打印(fmaxnum);回声“”

您将使用
max()
获得最大值,但对于索引,您必须使用
数组键()

您可以尝试以下方法:

// supposing $arr is your initial array
$arrMax = array_map(function($v){
    $maximum = max($v);
    return  [array_keys($v, $maximum)[0] => $maximum];
}, $arr);

print_r($arrMax);
$found=Array('3'=>Array('2'=>3,'4'=>1,'5'=>2,'6'=>2),
'5'=>数组('2'=>1,'3'=>2,'4'=>3,'6'=>3),
'6'=>数组('2'=>3,'3'=>2,'4'=>2,'5'=>3)
);
$fmaxnum=array();
foreach($fk=>$fv){
$max_key=数组_key($fv,max($fv));
$fmaxnum[$fk]=数组(
($max_key[0])=>max($fv)/*这将给出较小的索引值*/
/*(count($max_key)-1)=>=>max($fv)//这将给出最高的索引值*/
);
} 
回声“;
打印(fmaxnum);
回声“;

具有
数组映射
数组键
功能的简单解决方案:

$array = [['3','1','2','2'],['1','2','3','3'],['2','1','1','3']]; 
$result = []; 

foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value) {
    $result[] = $value;
}

echo max($result);  
输出:


如果你只是想知道我所理解的最高值

在这个数组中,我想找到最大数,如果数组 包含相同的最大值,然后我们选择一个最大值 随机的

你可以这么做


这将访问所有数组并将值推送到
$result
,然后您只需要一个级别数组并轻松使用
max
函数$found=array([3]=>array([2]=>3[4]=>1[5]=>2[6]=>2)[5]=>array([2]=>1[3]=>2[4]=>3[6]=>3[6]=>Array([2]=>3[3]=>2[4]=>2[5]=>3))$fmaxnum=Array();foreach($fk=>$fv){$fmaxnum[$fk]=max($fv);}}}echo“”;打印(fmaxnum);回声“;我像上面那样编写代码我已经将您的注释编辑到代码中。如果你想更新你的问题,请使用你文章下方的“编辑”链接。此外,要在
代码标记中获取内容,请将其缩进4个空格。祝你好运你只是想要最高的值,不管它有什么键?
Array
(
    [3] => Array
        (
            [2] => 3
        )

    [5] => Array
        (
            [4] => 3
        )

    [6] => Array
        (
            [2] => 3
        )
)
$array = [['3','1','2','2'],['1','2','3','3'],['2','1','1','3']]; 
$result = []; 

foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value) {
    $result[] = $value;
}

echo max($result);