当前位置: 首页 > 面试题库 >

在PHP中,最好使用$ array [] = $ value或array_push($ array,$ value)?

丌官晨
2023-03-14
问题内容

在PHP中最好使用附加数组成员的方法

$array[] = $value;

要么

array_push($array, $value);

尽管手册说您最好避免进行函数调用,但我阅读$array[]的速度也比慢得多array_push()。有哪些澄清或基准?


问题答案:

没有基准,但是我个人觉得看起来$array[]更干净,并且诚实地在毫秒内拆分头发是完全没有关系的,除非您计划将数十万个字符串添加到数组中。

编辑 :运行此代码:

$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
    $array[] = $i;
}
print microtime(true) - $t;
print '<br>';
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
    array_push($array, $i);
}
print microtime(true) - $t;

第一种方法使用的$array[]速度比第二种方法快50%。

一些基准测试结果:

Run 1
0.0054171085357666 // array_push
0.0028800964355469 // array[]

Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]

Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]

这并不奇怪,因为PHP手册指出了这一点:

如果使用array_push()将一个元素添加到数组中,则最好使用$ array [] =,因为这样就不会产生调用函数的开销。

它的用词方式如果array_push添加多个值更有效,我也不会感到惊讶。 编辑
:出于好奇,进行了一些进一步的测试,即使添加了大量内容,单个$array[]通话也比一个通话快array_push。有趣。



 类似资料:
  • 查询数组中元素,返回下标。 参数 名称 类型 默认值 描述 array [] 数组。 value * 寻找的对象。 返回值 下标,类型:number。

  • 问题内容: 这个问题已经在这里有了答案 : 在PHP中,最好使用$ array [] = $ value或array_push($ array,$ value)? (10个答案) 4年前关闭。 我需要将从MySQL接收的值添加到数组(PHP)中。这是我所拥有的: 这是唯一的方法吗? 另外 ,以下方法更快/更好吗? 问题答案: 您可以运行它,发现在某些情况下array_push速度较慢: http:

  • 主要内容:PHP Array 简介,安装,PHP 5 Array 函数PHP Array 简介 PHP Array 函数允许您访问并操作数组。 支持简单的数组和多维数组。 安装 PHP Array 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。 PHP 5 Array 函数 函数 描述 array() 创建数组。 array_change_key_case() 返回其键均为大写或小写的数组。 array_chunk() 把一个数组分割为新的数组块。 ar

  • 问题内容: 采用JSON或Array对象并将其转换为XML的最简单方法是什么?也许我在所有错误的地方找东西,但找不到合适的答案来使我按部就班。这是我必须以某种方式建立自己的东西吗?或者是否有类似json_encode / json_decode的东西将采用数组或json对象并将其弹出为xml对象? 问题答案: 在这里检查:如何将数组转换为SimpleXML 而这个文件应帮助您太 关于Json到Ar

  • 问题内容: 您认为在PHP脚本中哪个更快? 或者 问题答案: 这取决于许多因素,我什至不知道该如何开始。 但通常,您需要在数据库端执行排序。 索引,整理和所有这些都可以提供帮助。

  • 我想解析xml文件,到目前为止,我发现最好的方法是使用DOMDocument()类。 示例xml字符串: 我使用函数dom2array(如下)来解析dom,但是它只返回1个元素(仅值4) 有没有办法解析所有xml元素并将它们发送到数组? 输出数组: 其中value1,value2,value3?:(谢谢你