创建关联数组while循环,不带值引号

时间:2014-06-02 16:36:32

标签: php json

我有这个PHP代码创建一个显示为JSON的数组:

$return_arr = array();
$sql="SELECT * from prices ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs)) {
    $return_arr[] = array('label' => $result["product"], 'id' => $result["sequence"]);
}

目前,它显示如下:

var data = [{"label":"VoIP Telephone Numbers","id":"3"},{"label":"VoIP Port Submit","id":"4"}];

但我需要从labelid

中删除引号(")

2 个答案:

答案 0 :(得分:0)

这是我用于此任务的正则表达式:

$not_valid_json = preg_replace(array('%([{,])(\s*)"([a-z0-9]+)"\s*:%i','%\\\\/%','%"%'), array('$1$3:','/','\''), json_encode($value));

请注意,根据规范,这不再是真正有效的JSON,但它仍将在JavaScript中进行评估。

另请注意,如果正在编码的值包含引号,则此功能始终无效。

答案 1 :(得分:0)

您不清楚如何或在何处显示JSON,但您可能需要使用JSON.parse方法。以下是我的Chrome javascript控制台:

> var foo = JSON.parse('{"label":"VoIP Telephone Numbers","id":"3"}');
undefined
> foo
Object {label: "VoIP Telephone Numbers", id: "3"}