获取二维数组每一列的最大值

2023-12-22

我有一个数组中的数组,例如:

[ 
    [0, 20, 5], 
    [5, 0, 15], 
    [5, 10, 0]
]

我需要获取每列中的最大数字。

  • 最大为[0 , 5 , 5] is 5,以便进入结果数组。
  • 最大为[20, 0, 10] is 20,以便进入结果数组。
  • 最大为[5, 15, 0] is 15,以便进入结果数组。

最终结果数组必须包含[5, 20, 15].


首先,必须转置数组(翻转行和列):

function array_transpose($arr) {
   $map_args = array_merge(array(NULL), $arr);
   return call_user_func_array('array_map', $map_args);
}

(取自有没有更好的方法来转置 PHP 2D 数组? https://stackoverflow.com/questions/3460022/is-there-better-way-to-transpose-a-php-2d-array- 阅读该问题以了解其工作原理)

然后,您可以映射max新数组上的函数:

$maxes = array_map('max', array_transpose($arr));

例子:http://codepad.org/3gPExrhO http://codepad.org/3gPExrhO

输出 [我认为这就是你的意思,而不是 (5, 15, 20),因为你说索引 1 应该是 (20, 0, 10) 的最大值]:

Array
(
    [0] => 5
    [1] => 20
    [2] => 15
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取二维数组每一列的最大值 的相关文章

随机推荐