首先,我正在尝试使用谷歌图表api创建一个饼图。在那里,我必须提供一个javascript数组的数组。现在我在服务器端有一个以下结构的php数组:
[
{
"name": "a",
"price": 25200
},
{
"name": "b",
"price": 13500
}
]
我需要的是:
[
[
"a": 25200
],
[
"b": 13500
]
]
到目前为止 - 使用以下php函数进行转换。
public function convert($packages){
$packageShare = array(array());
$count = count($packages);
for($i = 0; $i < $count; $i++){
$pack = array();
$pack[$packages[$i]['name']] = $packages[$i]['price'];
$packageShare[$i] = $pack;
}
return $packageShare;
}
但输出不是我想要的。以下是上述函数返回的内容:
[
{
"a": 25200
},
{
"b": 13500
}
]
N.B。我需要在google chart api
中提供这个数组,这在javascript中需要这样的东西。
[[0,0],[1,10],[2,12]]
什么是标准饲养方式?
答案 0 :(得分:1)
对于[[0,0],[1,10],[2,12]]格式,它是一个数组数组。你可以用
来搞定$output = array_map(function($v){return [$v['name'], $v['price']];}, $array);
print_r(json_encode($output));
输出:
[["a",25200],["b",13500]]
这里还有其他格式,
<?php
//Enter your code here, enjoy!
$array = array(array('name'=>'a', 'price'=>25200),array('name'=>'b', 'price'=>13500));
print_r(json_encode($array));
echo "\n";
$output = array_map(function($v){return [$v['name'], $v['price']];}, $array);
print_r(json_encode($output));
echo "\n";
$output1 = array_map(function($v){return array($v['name'] => $v['price']);}, $array);
print_r(json_encode($output1));
echo "\n";
输出:
[{"name":"a","price":25200},{"name":"b","price":13500}]
[["a",25200],["b",13500]]
[{"a":25200},{"b":13500}]
答案 1 :(得分:0)
public function convert($packages){
$a = json_decode($packages,true);
$count = sizeof($a);
for($i = 0; $i < $count; $i++){
$b[][$a[$i]['name']]=$a[$i]['price'];
}
return $b;
}
print_r($b)
的输出将是
Array ( [0] => Array ( [a] => 25200 ) [1] => Array ( [b] => 13500 ) )