Col*_*lin 5 javascript php ajax json
在PHP中,我正在运行一个具有ORDER BY子句的mysql_query.然后我迭代结果来构建一个关联数组,以row_id为关键.
然后,我在该数组上调用json_encode并输出结果.
此页面加载了AJAX,并在Javascript变量中定义.当我遍历那个Javascript变量时,我是否仍然拥有从mysql_query返回的顺序?
cle*_*tus 11
PHP数组在维护插入顺序的属性方面有些独特.Javascript本身没有关联数组.它有对象,通常用作关联数组.这些不保证任何特定的键盘顺序.
为什么不将它们作为数组输出?这将有一个特定的顺序.如果您想要某种键查找,为什么订单很重要?
cletus说的是正确的,但根据我的经验,大多数浏览器都会保持秩序.话虽这么说,你应该考虑使用Array.如果您需要在客户端收到它后对其进行排序,只需使用.sort()JavaScript中的函数:
rows.sort(function(a, b) {
return a.row_id - b.row_id;
}
Run Code Online (Sandbox Code Playgroud)
虽然它看似有效,但是对象中的属性顺序不能被依赖.请参阅下面的许多评论以获取更多信息(比我更聪明的眼睛).但是,这是我用来在我自己的有限测试中测试行为的代码:
var test = {
one: 'blah',
two: 'foo',
another: 'bar'
};
for (prop in test) {
document.write(prop + "<br />");
}
Run Code Online (Sandbox Code Playgroud)
打印(在Firefox 3.6.3和Chrome 5.0.375.9中):
one
two
another
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望确保获得所需的JSON编码类型json_encode(),例如对象(使用{}花括号)而不是数组([]大括号).您可能需要通过JSON_FORCE_OBJECT以json_encode()迫使它.
Array方法是首选)| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |