2016-06-22 5 views
1

多次元配列を再構成しようとしていますが、管理できません。私は配列のことではあまりよくありません...だから私はあなたの助けをお願いしたいと思います!ここでPHPで多次元配列を再構成してJSONを探したい

は私の実際の配列です:

$jsonArray = Array 
(
[0] => Array 
    (
     [category] => Array 
      (
       [label] => avr 2016 
      ) 

     [data] => Array 
      (
       [value] => 39 
      ) 

    ) 

[1] => Array 
    (
     [category] => Array 
      (
       [label] => mai 2016 
      ) 

     [data] => Array 
      (
       [value] => 335 
      ) 

    ) 

[2] => Array 
    (
     [category] => Array 
      (
       [label] => jun 2016 
      ) 

     [data] => Array 
      (
       [value] => 206 
      ) 

    ) 

) 

それから私は、AJAXとそれを組み合わせるためにjson_encodeを使用:

echo json_encode($jsonArray, JSON_UNESCAPED_UNICODE); 

そして結果は次のとおりです。

[{"category":{"label":"avr 2016"},"data":{"value":"39"}},{"category":{"label":"mai 2016"},"data":{"value":"335"}},{"category":{"label":"jun 2016"},"data":{"value":"206"}}] 

私がしようとしていますhereのFusionChartsの例を使用する!

あなたは私がこのような構造化されたアレイを作成する必要があります見ての通り:私はチャートのためにこれを設定し、私のAJAXコードに続いて

"category": [ 
        { "label": "Jan 2012" }, 
        { "label": "Feb 2012" }, 
        { "label": "Mar 2012" }, 
        { "label": "Apr 2012" }, 

"data": [ 
        { "value": "27400" }, 
        { "value": "29800" }, 
        { "value": "25800" }, 
        { "value": "26800" }, 

を:

var apiChart = new FusionCharts({ 
       type: 'scrollline2d', 
       renderAt: 'chart-totalAnnee', 
       width: '550', 
       height: '350', 
       dataFormat: 'json', 
       dataSource: { 
        "chart": chartProperties, 
        "categories": arrayNeedle1, 
        "dataset": arrayNeedle2 
       } 
      }); 

私の最後のリクエストは私が作ることができる方法でありますそれらの配列arrayNeedle1 & arrayNeedle2、どうか?

ご協力いただきありがとうございました。配列で私の貧弱なスキルをお詫び申し上げます。

よろしくお願いいたします。

+1

私たちにあなたのためにそれを依頼するのではなく、少なくとも試行してください。 –

+0

また、2番目の配列は不可能です。同じキーを持つ配列内に2つの要素を作成することはできません。 –

+0

こんにちはみんな、あなたの答えに感謝しかし、私は私の要求を更新し、私はあなたが正しい道に私を置くことができると思います:) – Peacefull

答えて

1

あなたは多次元ネストされた配列を持っているとして、場所でそれを再構築することはovercomplicatedの方法だろう、代わりに次のアプローチを使用して必要な構造を持つ新しい配列を作成することがあります。

// supposing $arr is your initial array 
$new_arr = ["category" => [], "data" => []]; // base structure 
foreach ($arr as $item) { 
    $new_arr["category"][] = ["label" => $item["category"]["label"]]; 
    $new_arr["data"][] = ["value" => $item["data"]["value"]]; 
} 

echo json_encode($new_arr, JSON_PRETTY_PRINT); 

出力:

{ 
    "category": [ 
     { 
      "label": "avr 2016" 
     }, 
     { 
      "label": "mai 2016" 
     }, 
     { 
      "label": "jun 2016" 
     } 
    ], 
    "data": [ 
     { 
      "value": "39" 
     }, 
     { 
      "value": "335" 
     }, 
     { 
      "value": "206" 
     } 
    ] 
} 
+0

非常に仲間ありがとう!あなたは私の日を作る:)あなたの助けを借りて、私はチャートを管理しました!良い一日をありがとう! PS:申し訳ありませんが、私はあなたの返事を確認するための十分なポイントがありません! – Peacefull

+0

@Peacefull、よろしくお願いします。喜んで助ける – RomanPerekhrest