0

我通过 print_r 在下面有一个数组,但是我只需要使用其中的一部分,这样我就可以在 flot 图表中使用它。

Array ( [success] => 1 [timestamp] => 1383824357 [data] => Array ( [0] => Array ( [label] => customer1 [SUM(value)] => 12345) [1] => Array ( [label] => customer2 [SUM(value)] => 67890) [2] => Array ( [label] => customer3 [SUM(value)] => 11223 ) [3] => Array ( [label] => customer4 [SUM(value)] => 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(value)" ,"data" , $data);

还有另一种方法可以做同样的事情,但你必须改变查询:

Select SUM(value) etc etc

Select SUM(value) as data etc etc

数据库会为你处理一切:)

于 2013-11-07T11:54:31.550 回答
1

只需将其转换为 JSON 对象:

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

然后你就得到了你需要的结构。

您可能还需要将字段名称从更改valuedata

于 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 回答