我正在尝试基于我在数组中获得的一些php数据创建一个图表,如果我运行以下
<?php
$out = array_values($periodi);
echo json_encode($out, JSON_PRETTY_PRINT);
?>
我得到这个json格式
[
"Francia",
"Italia",
"Italia",
"Germania",
"Afghanistan",
"Italia"
]
虽然我正在寻找的是获得这样的格式。无论不同的值如何在roder中添加一个专有名称以获得某些内容?
var data = [{
"name": "Tokyo",
"data": 3.0
}, {
"name": "NewYork",
"data": 2.0
}, {
"name": "Berlin",
"data": 3.5
}, {
"name": "London",
"data": 1.5
}];
的print_r($ periodi);
数组([0] =&gt; Moderno [1] =&gt; Contemporaneo [2] =&gt; Contemporaneo [3] =&GT; Contemporaneo [4] =&gt; Contemporaneo)
我有另一个包含不同数据但仍然格式错误的数组:
数组([francese] =&gt;数组([maschio] =&gt;数组([0] =&gt; 1) [femmina] =&gt;数组([0] =&gt; 1))[chimica] =&gt;数组([maschio] =&gt; 数组([0] =&gt; 1 [1] =&gt; 1))[fisica] =&gt;数组([maschio] =&gt;数组( [0] =&gt; 1 [1] =&gt; 1)[femmina] =&gt;数组([0] =&gt; 1))[scienze] =&gt; 数组([maschio] =&gt;数组([0] =&gt; 1))[inglese] =&gt;阵列( [maschio] =&gt;数组([0] =&gt; 1))[spagnolo] =&gt;数组([maschio] =&gt; 数组([0] =&gt; 1))[italiano] =&gt;数组([femmina] =&gt;数组([0] =&gt; 1)))
{
"maschio": [
true
],
"femmina": [
true
]
},
{
"maschio": [
true,
true
]
},
{
"maschio": [
true,
true
],
"femmina": [
true
]
},
{
"maschio": [
true
]
},
{
"maschio": [
true
]
},
{
"maschio": [
true
]
},
{
"femmina": [
true
]
}
]
答案 0 :(得分:2)
$jsonArr = array();
foreach($periodi as $key => $val){
$jsonArr[$key]['name'] = $val;
$jsonArr[$key]['data'] = $key; //there is no source for priority
//in your array so i just put $key as priority variable
}
json_encode($jsonArr);
答案 1 :(得分:1)
你应该像这样制作你的阵列......
Array
(
[0] => Array
(
['name'] => 'Tokyo'
['data'] => 3
)
[1] => Array
(
['name'] => 'NewYork'
['data'] => 2
)
)
如何制作阵列?
$final_array = array();
foreach($data as $key=>$value)
{
$final_array[]=array(
"name"=>$key,
"data"=>$value
);
}
然后您只需要json_encode
$final_array
。
答案 2 :(得分:0)
<?php
$array=
[
"Moderno",
"Contemporaneo",
"Contemporaneo",
"Contemporaneo",
"Contemporaneo"
];
$array=array_count_values($array);
$result=array();
foreach($array as $key => $value)
{
$result[]=array("name"=>$key,"data"=>$value);
}
print_r(json_encode($result));