gpt4 book ai didi

PHP数组效率和内存澄清

转载 作者:可可西里 更新时间:2023-11-01 00:38:08 28 4
gpt4 key购买 nike

在 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com