我下面通过print_r有一个数组,但是我只需要使用其中的一部分,所以我可以在很多图表中使用它。
数组 ( [成功] => 1 [时间戳] => 1383824357 [数据] => 数组 ( [0] => 数组 ( [标签] => 客户1 [总和(值)] => 12345) [1] => 数组 ( [标签] => 客户2 [总和(值)] => 67890) [2] => 数组 ( [标签] => 客户3 [总和(值)] => 11223 ) [3] => 数组 ( [标签] => 客户4 [总和(值)] => 33445 ) ) )
flot 图表想要的格式是这样的(使用上述数据):
[
{ label: "customer1", data: 12345},
{ label: "customer2", data: 67890},
{ label: "customer3", data: 11223},
{ label: "customer4", data: 34455}
];
有谁知道我如何访问上述数据?
所以你基本上想用"SUM(value)"键更改"data"键,然后访问数组? 如果是这样,您可以使用以下代码片段:
<?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(值)中的键数据...如果我理解得很好,你想要相反的情况...只需像这样反转函数参数
$new = array_change_key_name("SUM(value)" ,"data" , $data);
还有另一种方法可以执行相同的操作,但您必须将查询从:
Select SUM(value) etc etc
自
Select SUM(value) as data etc etc
DB将为您处理所有:)
只需将其转换为 JSON 对象:
$json = json_encode($array['data']);
然后你就有了你需要的结构。
您可能还需要将字段名称从 value
更改为data
。
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
}
试试这个 也许它会起作用.我没有测试...
$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);