我有一个数组中的数组,例如:
[
[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(使用前将#替换为@)