PHP 如果仅单独使用数组值,是否需要 ksort()?

PHP is ksort() necessary if using array values only individually?

今天一道简单的题!

我最终在我的数组中定义了非顺序的值,换句话说,2 => 'marmosets' 是在 0 => cats1 => dogs 之前定义的。据我了解,键将正确分配(即值 marmosets 确实是键 2 而不是键 0,即使它是首先定义的),但我的数组将是 'out of order' 这样 print_r() 会输出:

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

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

(a) 我的理解对吗? (b) 如果我只是单独使用这些值,并且从不需要输出列表,是否有任何 harm/impact 跳过 ksort() 并保留它们 "out of order"?

(a) 是且 (b) 否。

a) PHP 的数组是有序映射。默认顺序将保持插入顺序,直到您更改它,例如通过排序。

b) 如果你从不做任何依赖于任何命令的事情,例如只是通过键访问数据,顺序无关紧要,所以没有坏处。

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