1

何トンものループなしでこれを行う簡単な方法があることを願っています。

私は次のように行列を持っています:

    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

ありがとう

4

4 に答える 4

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);
}

max()PHPドキュメントから

並べ替えをさらに進める必要がある場合は、ここで詳細を確認できます PHP配列の並べ替え

于 2012-04-27T06:25:32.510 に答える
1

max()関数を使用します。

foreach($arrayMonths as $month => $row)
{
    echo $month . ": " . max($row) . "<br />";
}
于 2012-04-27T06:26:45.050 に答える
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
?>

お役に立てれば。

于 2012-04-27T06:54:21.823 に答える
0

私は完璧なアルゴリズムを見つけました。基本的に、すべての順列を通過する再帰関数を使用します。

于 2012-06-04T06:13:26.147 に答える