Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环使用JSON编码的PHP数组_Php_Jquery_Json - Fatal编程技术网

循环使用JSON编码的PHP数组

循环使用JSON编码的PHP数组,php,jquery,json,Php,Jquery,Json,我有一个PHP数组,其中表id作为键,表字段作为值 PHP示例: while($row = mysql_fetch_array($result)) { $id = $row['id']; $array[$id] = $row['some_field']; } 然后,我使用json\u encode($array)得到如下结果: {"id1":"value1","abc":"123","xyz":"789"} 我如何在jQuery中循环执行此操作?从我目前的发现来看,我似乎需要

我有一个PHP数组,其中表id作为键,表字段作为值

PHP示例:

while($row = mysql_fetch_array($result))
{
    $id = $row['id'];
    $array[$id] = $row['some_field'];
}
然后,我使用
json\u encode($array)
得到如下结果:

{"id1":"value1","abc":"123","xyz":"789"}
我如何在jQuery中循环执行此操作?从我目前的发现来看,我似乎需要知道钥匙。因此:

var obj = jQuery.parseJSON(jsonVar);
alert(obj.abc); //prints 123
但是,如果我不知道这些键,因为它们是动态的,我怎么能得到这些值呢?

我需要重新构造我的PHP数组吗?

将PHP中的关联数组编码为JSON对象后,它不再是数组,而是带有键和值的对象。您可以在javascript中使用


注意:
for..in
不计算顺序,如果需要确保顺序,则必须对数组进行索引,而不是
key=>value
,并使用
for
循环(或
while
)。

一旦将php中的关联数组编码到JSON对象中,它就不再是数组,它是一个具有键和值的对象。您可以在javascript中使用


注意:
for..in
不计算顺序,如果需要确保顺序,则必须对数组进行索引,而不是
key=>value
,并使用
for
循环(或
while
)。

可以使用
Object.keys
获取数组的键,然后循环使用它们。与中…的不同,这使您可以在处理键之前选择键:

var keys = Object.keys(obj).sort();  // sorting is optional
for (var i=0; i<keys.length; i++) {
    var key = keys[i],
        val = obj[key];
    console.log(key+":"+val);
};
var keys=Object.keys(obj.sort();//排序是可选的

对于(var i=0;i,您可以使用
对象获取数组的键。键
,然后循环遍历它们。与
中的
for…不同,这使您可以在处理键之前选择键:

var keys = Object.keys(obj).sort();  // sorting is optional
for (var i=0; i<keys.length; i++) {
    var key = keys[i],
        val = obj[key];
    console.log(key+":"+val);
};
var keys=Object.keys(obj.sort();//排序是可选的

对于(var i=0;我得到了JaredCater的工作,但我也会检查它。排序会很好。我得到了JaredCater的工作,但我也会检查它。排序会很好。得到了。我假设我不能使用
for..in
因为。然后我重新阅读了上面的部分“for..in用于枚举对象的属性",认为我有一个数组。所以,这正是我所需要的。谢谢。请注意,尽管由于模糊性和无保证的排序顺序,这不是最佳做法,但您也可以使用
for..in
来循环规则数组…您不应该。明白了。我假设我不能使用
for..in
bec然后我重读了“for..in用于枚举对象的属性”的部分,认为我有一个数组。所以,这正是我所需要的。谢谢。请注意,尽管由于模糊性和无保证的排序顺序,这不是最佳做法,但您也可以使用
for..in
循环正则数组…您不应该这样做。