今天一个简单的问题!
我最终以非顺序方式定义了数组中的值,换句话说,2 => 'marmosets'
在0 => cats
和1 => dogs
之前定义。我的理解是键将正确分配(即值marmosets
确实是键2
而不是键0
,即使它是第一次定义的),但我的数组将是'乱序'使得print_r()
输出:
2 => marmosets
0 => cats
1 => dogs
如果我想按键按数字顺序排列它们,ksort()
就可以完成这项工作。
(a)我的理解是否正确?
(b)如果我只是单独使用这些值,而且从不需要输出列表,那么在跳过ksort()
并使它们“无序”时是否有任何损害/影响?
答案 0 :(得分:1)
(a)同意和(b)否。
a)PHP的数组是有序地图。默认订单将保留广告订单,直到您更改为止,例如通过排序。
b)如果您从未做过依赖任何订单的任何事情,例如只是按键访问数据,顺序无关紧要,所以没有任何伤害。
答案 1 :(得分:1)
打印数组确实会按照您创建的顺序打印它,无论这些键是数字键还是关联键。这可以通过测试您的示例来证明。如果你不依赖于数组的实际顺序,跳过ksort没有坏处。但是,使用ksort也没有坏处。除非您处理大量数据,否则在应用程序中对数组进行一次排序对性能没有明显影响。