我希望有一个简单的方法可以做到这一点,没有吨和大量的循环。
我有以下方式的矩阵:
Weight1 Weight2 Weight3 .... WeightN
Jan 1 3 5 4
Feb 10 12 15 11
Mar 5 7 4 3
Apr 10 15 7 3
假设有以下数组:
$arrayMonths = array(
'jan' => array(1, 3, 5,4)
'feb' => array(10,12,15,11)
'mar' => array(5, 7, 4, 3)
'apr' => array(10,15,7,3)
);
我获得每行最大值的最佳方法是: jan = 5 feb = 15 mar = 7 apr = 15
谢谢
答案 0 :(得分:1)
foreach ($arrayMonths as $month => $array) {
// store the max of each month for later
// $max['jan'] = 5
$max[$month] = max($array);
// or print it out
echo $month. ' => '. max($array);
}
如果您需要进一步分类,可以在这里查看更多信息 PHP Array Sorting
答案 1 :(得分:1)
使用max()功能:
foreach($arrayMonths as $month => $row)
{
echo $month . ": " . max($row) . "<br />";
}
答案 2 :(得分:0)
试试这个:
<?php
function getMax( $v, $k ) {
global $arrayMonths;
$arrayMonths[ 'max' ][$k] = max($v);
}
$arrayMonths = array(
'jan' => array(1, 3, 5,4),
'feb' => array(10,12,15,11),
'mar' => array(5, 7, 4, 3),
'apr' => array(10,15,7,3)
);
array_walk( $arrayMonths, 'getMax' );
// Now $arrayMonths['max'] will contain all max values for each key
?>
希望这有帮助。
答案 3 :(得分:0)
我发现了一个完美的算法:基本上使用了一个遍历所有排列的递归函数。