我需要对三个php数组进行编码,这些数组都具有相同的值。从那里它必须是json_encoded。
Array ( [0] => Title1
[1] => 320 KB/s 5.0 MB 1:24
[2] => http://www.example.com/Title1.mp3 )
Array ( [0] => Title2
[1] => 120 KB/s 2.8 MB 3:29
[2] => http://www.example.com/Title2.mp3 )
Array ( [0] => Title3
[1] => 250 KB/s 8.5 MB 4:59
[2] => http://www.example.com/Title3.mp3 )
json需要是一个json数组,如下例所示。
{
"result": [
{
"link": "http://www.example.com/Title1.mp3",
"metadata": "320 KB/s 5.0 MB 1:24",
"title": "Title1"
},
{
"link": "http://www.example.com/Title2.mp3",
"metadata": "120 KB/s 2.8 MB 3:29",
"title": "Title2"
},
{
"link": "http://www.example.com/Title3.mp3",
"metadata": "250 KB/s 8.5 MB 4:59",
"title": "Title3"
}
]
}
答案 0 :(得分:1)
为了在JSON中获取值的正确键,您需要在阵列中定义现有的键。像这样的东西会起作用:
$joinedArrays = array($array1, $array2, $array3);
$JSONarray = array();
foreach($joinedArrays as $array){
$JSONarray[] = array("title" => $array[0], "metadata" => $array[1],
"link" => $array[2]);
}
echo json_encode($JSONarray);
首先,您将所有已包含的数组编译到一个数组中,然后在foreach循环中创建一个具有正确键和值的新关联数组,并将其作为新值添加到$JSONarray
中从而创建一个多维数组。一旦将所有数组解析为新的关联数组,就可以运行json_encode($JSONarray);
来获取以您要求的样式格式化的JSON。
如果您没有先将信息编译成关联数组,那么您将得到一个如下所示的JSON:
[
result:
{
0:"Title1",
1:"320 KB/s 5.0 MB 1:24",
2:"http://www.example.com/Title1.mp3"
},
{
0:"Title2",
1:"120 KB/s 2.8 MB 3:29",
2:"http://www.example.com/Title2.mp3"
},
{
0:"Title3",
1:"250 KB/s 8.5 MB 4:59",
2:"http://www.example.com/Title3.mp3"
}
]
答案 1 :(得分:0)
您可以将每个数组添加到一个新的多维数组中,如下所示:
$all_data = array();
$all_data[] = $first_array;
$all_data[] = $second_array;
$all_data[] = $third_array;
$json = json_encode($all_data);
答案 2 :(得分:-1)
我尝试了这个,所以我得到了你想要的那个结果json响应
<?php
$arr1[] = array('title'=>'one','value'=>'one');
$arr1[] = array('title'=>'two','value'=>'two');
$arr1[] = array('title'=>'three','value'=>'three');
$arr['result'] = $arr1;
echo '<pre>';print_r(json_encode($arr));