循环使用JSON编码的PHP数组
我有一个PHP数组,其中表id作为键,表字段作为值 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中循环执行此操作?从我目前的发现来看,我似乎需要
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
循环正则数组…您不应该这样做。