0

私はプロジェクトに取り組んでいますが、多次元配列で実行する必要がある計算に頭を悩ませることができません。背景を簡単に説明すると、これはホテルのベンチマーク ツールであり、市場浸透指数 (MPI) を計算する必要があります。3 つのメイン配列を持つ配列があります。最初の 2 つは比較対象のホテルで、最後の 1 つは MPI 配列です。

各配列には、ユーザーが選択した月ごとの配列が含まれています。その配列の中には、計算に使用する必要があるデータがあります。以下に例を示します。

Array
(
 [Competitive set] => Array
    (
        [Sep 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-09-01
                        [maxmonth] => 2011-09-01
                        [nrcheck] => 13
                        [data] => 67.6
                    )

            )

        [Oct 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-10-01
                        [maxmonth] => 2011-10-01
                        [nrcheck] => 13
                        [data] => 63.6
                    )

            )

        [Nov 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-11-01
                        [maxmonth] => 2011-11-01
                        [nrcheck] => 13
                        [data] => 59.2
                    )

            )

        [Dec 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-12-01
                        [maxmonth] => 2011-12-01
                        [nrcheck] => 13
                        [data] => 54.6
                    )

            )

    )

[Test] => Array
    (
        [Sep 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-09-01
                        [maxmonth] => 2011-09-01
                        [nrcheck] => 89
                        [data] => 71.5
                    )

            )

        [Oct 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-10-01
                        [maxmonth] => 2011-10-01
                        [nrcheck] => 89
                        [data] => 67.0
                    )

            )

        [Nov 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-11-01
                        [maxmonth] => 2011-11-01
                        [nrcheck] => 91
                        [data] => 63.1
                    )

            )

        [Dec 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-12-01
                        [maxmonth] => 2011-12-01
                        [nrcheck] => 89
                        [data] => 57.5
                    )

            )

    )

[MPI] => Array
    (
        [Sep 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-09-01
                        [maxmonth] => 2011-09-01
                        [nrcheck] => 89
                        [data] => 71.5
                    )

            )

        [Oct 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-10-01
                        [maxmonth] => 2011-10-01
                        [nrcheck] => 89
                        [data] => 67.0
                    )

            )

        [Nov 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-11-01
                        [maxmonth] => 2011-11-01
                        [nrcheck] => 91
                        [data] => 63.1
                    )

            )

        [Dec 11] => Array
            (
                [0] => Array
                    (
                        [minmonth] => 2011-12-01
                        [maxmonth] => 2011-12-01
                        [nrcheck] => 89
                        [data] => 57.5
                    )

            )

    )

)

これは、提案されている var_export を使用したペーストビンです (ここでは適切にフォーマットできないようです) http://pastebin.com/b8hYM7TW 巨大なコード ブロックで申し訳ありませんが、このように大きくする必要がありました =( どちらにしても、現在は「データ」 for MPI は間違っています. これは、最初の配列のデータを 2 番目の配列のデータで割り、100 (パーセント) を掛けたものになる必要があります。

キー「Competitive Set」と「Test」は変数であり、私が作業しているスコープでは使用できないため、これらの静的な名前は使用できません。

再帰関数について読みましたが、まだ理解できません...

4

1 に答える 1

0

あなたが提供したペーストビン配列は「Dithotel」配列にデータがないので、これが機能することを実際に確認することはできませんが、ここに行きます

foreach ($array['Dit hotel'] as $key => $value) {

    $array['MPI'][$key][0]['data'] = $value[0]['data'] / $array['Test'][$key][0]['data'] * 100;
}

http://codepad.org/m884GMpJ

于 2012-05-30T20:46:39.467 に答える