如果仅单独使用数组值,PHP是必需的ksort()吗?

时间:2017-01-12 00:30:48

标签: php arrays ksort

今天一个简单的问题!

我最终以非顺序方式定义了数组中的值,换句话说,2 => 'marmosets'0 => cats1 => dogs之前定义。我的理解是键将正确分配(即值marmosets确实是键2而不是键0,即使它是第一次定义的),但我的数组将是'乱序'使得print_r()输出:

2 => marmosets
0 => cats
1 => dogs

如果我想按键按数字顺序排列它们,ksort()就可以完成这项工作。

(a)我的理解是否正确? (b)如果我只是单独使用这些值,而且从不需要输出列表,那么在跳过ksort()并使它们“无序”时是否有任何损害/影响?

2 个答案:

答案 0 :(得分:1)

(a)同意和(b)否。

a)PHP的数组是有序地图。默认订单将保留广告订单,直到您更改为止,例如通过排序。

b)如果您从未做过依赖任何订单的任何事情,例如只是按键访问数据,顺序无关紧要,所以没有任何伤害。

答案 1 :(得分:1)

打印数组确实会按照您创建的顺序打印它,无论这些键是数字键还是关联键。这可以通过测试您的示例来证明。如果你不依赖于数组的实际顺序,跳过ksort没有坏处。但是,使用kso​​rt也没有坏处。除非您处理大量数据,否则在应用程序中对数组进行一次排序对性能没有明显影响。