0

1つのキーだけを合計したいのですが、他の2でソートしました。

<?php
Array
(
    [0] => Array
        (
            [week] => 1
            [info] => a
            [hours] => 4
        )

    [1] => Array
        (
            [week] => 2
            [info] => a
            [hours] => 4
        )

    [2] => Array
        (
            [week] => 2
            [info] => a
            [hours] => 4
        )
    [3] => Array
        (
            [week] => 2
            [info] => b
            [hours] => 4
        )
    [4] => Array
        (
            [week] => 2
            [info] => c
            [hours] => 4
        )
    [5] => Array
        (
            [week] => 3
            [info] => b
            [hours] => 4
        )
    [6] => Array
        (
            [week] => 3
            [info] => b
            [hours] => 4
        )
)
?>

週でソートされた時間を合計したいと思います。毎週情報があります。したがって、最初にすべての情報の時間を合計してから、週ごとに並べ替えます。

例:

week:1  info:a   hours:4
week:2  info:a   hours:8
week:2  info:b   hours:4
week:2  info:c   hours:4
week:3  info:b   hours:8

これはどのように行うことができますか?

4

1 に答える 1

1

配列を再配置するだけです:

$todisplay = array();
foreach ($weeks as $week) {
   //Does not properly check for set keys; you should do isset checks
   $todisplay[$week['week']][$week['info']] += $week['hours'];
}
ksort($todisplay);

その後、繰り返してtodisplayテーブルを作成できます。

于 2012-09-10T23:59:18.787 に答える