我的MySQL数据库的结果是我在PHP中使用json编码,结果如下 :
[
{
"id": "8488",
"name": "Tenby",
"area": "Area1"
},
{
"id": "8489",
"name": "Harbour",
"area": "Area1"
},
{
"id": "8490",
"name": "Mobius",
"area": "Area1"
}
]
我想要做的是为该JSON添加一个新的键/值对,使其成为:
[
{
"id": "8488",
"name": "Tenby",
"area": "Area1",
"image": "1278.jpg"
},
{
"id": "8489",
"name": "Harbour",
"area": "Area1",
"image": "1279.jpg"
},
{
"id": "8490",
"name": "Mobius",
"area": "Area1",
"image": "1280.jpg"
}
]
那我怎么能在PHP中做到这一点?
答案 0 :(得分:11)
<?php
$data[0]['id']="8488";
$data[0]['name']="Tenby";
$data[0]['area']="Area1";
$data[1]['id']="8489";
$data[1]['name']="Harbour";
$data[1]['area']="Area1";
$data[2]['id']="8490";
$data[2]['name']="Mobius";
$data[2]['area']="Area1";
echo json_encode($data)."<br/>";
/*Add Image element (or whatever) into the array according to your needs*/
$data[0]['image']="1278.jpg";
$data[1]['image']="1279.jpg";
$data[2]['image']="1280.jpg";
echo json_encode($data);
?>
答案 1 :(得分:2)
胡?
db查询的结果将是一个数组或一个对象...... 添加该数据的附加条目,仅在完成每个必要的数据操作后进行编码
替代方案,但笨拙(可怕):
json_decode
,添加内容,json_encode
str_replace
"area": "Area1"
,例如"area": "Area1", "image": "1278.jpg"
但确实: 像json_encode这样的输出格式只应在你确定整个输出一起发出后才能完成
答案 2 :(得分:0)
PHP对JSON不是很好。最好将JSON转换为Array来实现这一点 - @ egig也推荐这样做。
示例代码:
$temp = json_decode($json);
$temp[] = new data, whatever you want to add...;
$json = json_encode($temp);
希望这有帮助。
答案 3 :(得分:0)
此后也许情况发生了变化,但是我知道这在当前阶段仍然有效:-
这是JSON字符串:-
$strJSON = '[
{
"id": "8488",
"name": "Tenby",
"area": "Area1"
},
{
"id": "8489",
"name": "Harbour",
"area": "Area1"
},
{
"id": "8490",
"name": "Mobius",
"area": "Area1"
}
]';
如果这仍然是字符串,那么我会将其转换为这样的对象:-
$json = json_decode( $strJSON );
现在它是对象格式,要向其添加“图像”键及其值,然后将其添加,如下所示:-
$json[0]->image = "1278.jpg";
$json[1]->image = "1279.jpg";
$json[2]->image = "1280.jpg";
因此,如果我在上面的代码之后添加以下代码:-
echo "<pre>";
print_r( $json );
echo "</pre>";
然后我们应该在页面上看到它的输出,如下所示:-
Array
(
[0] => stdClass Object
(
[id] => 8488
[name] => Tenby
[area] => Area1
[image] => 1278.jpg
)
[1] => stdClass Object
(
[id] => 8489
[name] => Harbour
[area] => Area1
[image] => 1279.jpg
)
[2] => stdClass Object
(
[id] => 8490
[name] => Mobius
[area] => Area1
[image] => 1280.jpg
)
)
答案 4 :(得分:0)
// $ index =数组中的某个值;
for($i=0;$i<count($index);$i++){
$data[$i]->key = $index[$i];
}
print $data;