0

以下に print_r 経由で配列を取得しましたが、フロー チャートで使用できるように、この配列の一部のみを使用する必要があります。

配列 ( [成功] => 1 [タイムスタンプ] => 1383824357 [データ] => 配列 ( [0] => 配列 ( [ラベル] => 顧客 1 [SUM(値)] => 12345) [1] => 配列( [ラベル] => customer2 [SUM(値)] => 67890) [2] => 配列 ( [ラベル] => customer3 [SUM(値)] => 11223 ) [3] => 配列 ( [ラベル] => customer4 [SUM(値)] => 33445 ) ) )

フロート チャートが必要とする形式は次のようになります (上記のデータを使用):

[
    { label: "customer1",  data: 12345},
    { label: "customer2",  data: 67890},
    { label: "customer3",  data: 11223},
    { label: "customer4",  data: 34455}
];

上記のようにデータにアクセスする方法を知っている人はいますか?

4

4 に答える 4

2

基本的に、「データ」キーを「SUM(値)」キーで変更してから、配列にアクセスしたいですか?もしそうなら、あなたはこのスニペットを使うことができます:

<?php
echo json_encode($data);

function array_change_key_name( $orig, $new, &$array ) {
  foreach ( $array as $k => $v ) {
    $res[ $k === $orig ? $new : $k ] = ( (is_array($v)||is_object($v)) ? array_change_key_name( $orig, $new, $v ) : $v );
  }
  return $res;
}

$new = array_change_key_name("data" ,"SUM(value)" , $data);
echo json_encode($new);
?>

編集: コードは、キー SUM(value) のキー データを変更します...よく理解していれば、反対が必要です...このように関数パラメーターを反転するだけです

$new = array_change_key_name("SUM(値)" ,"データ" , $data);

同じことを行う別の方法もありますが、クエリを次のように変更する必要があります。

Select SUM(value) etc etc

Select SUM(value) as data etc etc

そしてDBはuのためにすべてを処理します:)

于 2013-11-07T11:54:31.550 に答える
1

JSONオブジェクトに変換するだけです:

$json = json_encode($array['data']);

次に、必要な構造を取得します。

valueフィールド名を からに変更する必要がある場合もありdataます。

于 2013-11-07T11:44:33.810 に答える
0
print_r($array['data']); // $array is the name of your array

できるよ:

foreach ($myArray as $val) {
    echo $val['data'].'<br />';
    // Do whatever you want to do here
}
于 2013-11-07T11:45:43.950 に答える
0

これを試してみてください。うまくいくかもしれません。私はテストしませんでした...

 $myArray = "Your array";
 $data = $myArray['data'];
 $js_ar = '"';
    foreach($data as $record)
    {
        $js_ar .= '{ "label": $record[label],  data: $record[SUM(value)]}';

    }
    $js_ar = '"';
    $json_data = json_encode($js_ar);

    print_r ($json_data);
于 2013-11-07T11:54:20.437 に答える