在 PHP 中声明数组时,索引可能会乱序创建...即
数组[1] = 1 数组 [19] = 2 数组[4] = 3
我的问题。在创建这样的数组时,长度是否为 19,中间是否有空值?如果我尝试获取 Array[3],它会是未定义的还是会抛出错误?另外,这如何影响内存。 3个索引的内存会被占用还是19个?
目前还有一位开发人员编写了一个包含 3 个数组的脚本 FailedUpdates[] FailedDeletes[] FailedInserts[]
这样做效率更高,还是在关联数组控制多个子数组的情况下做
"Failures" array(){
["Updates"] => array(){
[0] => 12
[1] => 41
}
["Deletes"] => array(){
[0] => 122
[1] => 414
[1] => 43
}
["Inserts"] => array(){
[0] => 12
}
}
最佳答案
在 PHP 中,内存效率并不是您真正需要担心的事情,除非您处理的是非常大的数组/大量变量。
PHP 中的数组与 C++ 或类似的低级语言中的数组并不完全相同; PHP 中的数组是一张 map 。您有一个键列表(必须是唯一的,并且都是字符串或整数类型),以及一个与键对应的值列表。所以下面是一个合法的数组:
array(0 => 'butt', 1 => 'potato', 2 => 'tulip')
不过也是
array(5 => 'i', 'barry' => 6, 19 => array(-1 => array(), 7 => 'smock'))
在这两种情况下,数组中都有 3 个条目,因此有 3 个键和 3 个值。
除了数组中的键和值之外,一个数组还可以通过键/值对出现的顺序与另一个数组区分开来。如果您定义一个数组,使其具有非负整数作为键,这通常是预期的顺序。当您使用 foreach()
等构造时,顺序很重要。
关于PHP数组效率和内存澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038031/