如何在PHP中获取2d数组中最大元素的键



示例阵列

$array[0][0] = 5323;
$array[0][1] = 5346;
$array[0][2] = 5424;
$array[1][0] = 6000;
$array[1][1] = 5412;
$array[1][2] = 5543;
$array[2][0] = 5651;
$array[2][1] = 7000;
$array[2][2] = 5254;

所以这个数组中最大的元素的值是7000;如何获得他的钥匙X和Y(如$array[X][Y],因此在这种情况下,X=2,Y=1(;

您只需循环遍历数组,并在获得新的最大值时保存xy。

我从可能的最小数量开始max,然后它循环数组,如果值大于以前的最大,则更新变量

$max = PHP_INT_MIN;
foreach($array as $key => $subarray){
foreach($subarray as $subkey => $value){
if($value > $max){
$x = $key;
$y = $subkey;
$max = $value;
}
}
}

https://3v4l.org/5hHXP

一种方法可以是生成当前数组的字符串,然后创建字符串中所有值的数组,并通过在数组上使用PHP的本地函数max获取最大值:

$na = '';
foreach($array as $arr) {
$na .= implode(',',$arr) . ',';
}
$max_value = max(explode(',',$na));
foreach($array as $x=>$arr) {
$y = array_search($max_value, $arr);    
if ($y !== false) break;
}

然后你会得到$x、$y和$max_value 中的值

最新更新