Php 在输出为JSON之前更改数组
我需要在Php 在输出为JSON之前更改数组,php,arrays,json,Php,Arrays,Json,我需要在while循环期间向数组添加一个项和一个键值,然后再将其编码到JSON对象,我得到的输出如下: [ { "sid": "1", "session_name": "Session Name", "session_open": "1" }, { "sid": "2", "session_name": "Another session", "session_open": "1
while
循环期间向数组添加一个项和一个键值,然后再将其编码到JSON对象,我得到的输出如下:
[
{
"sid": "1",
"session_name": "Session Name",
"session_open": "1"
},
{
"sid": "2",
"session_name": "Another session",
"session_open": "1"
}
]
但我需要这样:
[
{
"error": "none", <---- this part needs to be added
"sid": "1",
"session_name": "Session Name :D",
"session_open": "1"
},
{
"sid": "2",
"session_name": "Another session",
"session_open": "1"
}
]
die(json_encode())
有一个有趣的技巧,请不要再这样做了 这是一个相当严重的误用die
。。。你应该简单地echo
你的json编码字符串。为什么使用die(json_encode())
是件坏事?我正在向脚本发出一个AJAX请求,而它所要做的只是随着一个输出而消失,使用它有什么问题?@lol当然,它可能会工作,但它不是它的目的。如果您的$sessions
恰好是一个整数,它的反应也会有所不同。这些都是导致难以检测的级联错误的类型。这个特殊的例子可能不太严重,但如果它代表了代码的其余部分,那么滥用函数来达到它们本来不应该达到的目的是你应该戒掉的习惯。无意冒犯。:)
$sessions = array();
while($row = mysql_fetch_assoc($result))
{
$sessions[] = $row;
}
mysql_free_result($result);
die(json_encode($sessions));
$sessions[0]['error'] = 'none';
echo json_encode($sessions);
die();