0

ここにまとめた私の配列があります:

Array
(
[1] => Array
    (
        [0] => Array
            (
                [date] => 1335848400000
                [value] => 1
                [product_id] => 1
                [title] => Test Product
            )

        [1] => Array
            (
                [date] => 1338526800000
                [value] => 8
                [product_id] => 1
                [title] => Test Product
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [date] => 1335848400000
                [value] => 1
                [product_id] => 2
                [title] => Test Product 2
            )

        [1] => Array
            (
                [date] => 1338526800000
                [value] => 4
                [product_id] => 2
                [title] => Test Product 2
            )

    )

[3] => Array
    (
        [0] => Array
            (
                [date] => 1338526800000
                [value] => 6
                [product_id] => 3
                [title] => Test Product 3
            )

    )

)

次のように表示したいもの:

{
name: 'Test Product',
data: [[1335848400000, 1],[1338526800000, 8]]
},
{
name: 'Test Product 2',
data: [[1335848400000, 1], [1338526800000, 4]]
},
{
name: 'Test Product 3',
data: [[1338526800000, 6]]
},

ハイチャートのように、日付と値でグループ化する必要があります。

どうすればそれを行うことができますか?どこから始めればよいかわかりません。私はそれについて調査を行いましたが、良い例を見つけることができませんでした。

編集:

1 つのエラーを除いて作業コード:

for($i=0 ; $i<=count($array) ; $i++)
                    {
                    $result_array[$i]['name'] = $array[$i][0]['title'];
                        for($j=0 ; $j<count($array[$i]) ; $j++)
                        {
                            $result_array[$i]['data'][$j][0] = $array[$i][$j]['date'];
                            $result_array[$i]['data'][$j][1] = $array[$i][$j]['value'];
                        }
                    }

                    echo $result = json_encode($result_array);

エラー:

重大度: 通知

メッセージ: 未定義のオフセット: 0

ファイル名: name.php

ライン番号: 115

[{"name":null},{"name":"Test Product","data":[[1335848400000,"1"],[1338526800000,"8"]]},{"name":"Test Product 2","data":[[1335848400000,"1"],[1338526800000,"4"]]},{"name":"Test Product 3","data":[[1338526800000,"6"]]}] 
4

1 に答える 1

1

このループを使用できます

<?php

for($i=1 ; $i<=count($main_array) ; $i++)
{
   $result_array[$i]['name'] = $main_array[$i][0]['title'];
   for($j=1 ; $j<=count($main_array[$i]) ; $j++)
   {
       $result_array[$i]['data'][$j][0] = $main_array[$i][$j]['date'];
       $result_array[$i]['data'][$j][1] = $main_array[$i][$j]['value'];
   }
}


echo $result = json_encode($result_array);

?>

私はそれをテストしました...それはあなたが望むように完全に動作します

于 2012-06-15T16:47:51.427 に答える