这个...运算符如何在PHP中运行?

时间:2017-07-21 16:59:24

标签: php arrays multidimensional-array

在我日常的办公室工作中,我必须处理不同类型的多维数组,有时我将它们平放到单个维度以用于我的工作目的。大多数时候我更喜欢 call_user_func_array array_merge param。实际上我想知道他们内部如何特别使用...运算符方式以及哪种方法更快?

<?php
$data = [[1, 2], [3], [4, 5]];
print '<pre>';
print_r(array_merge(... $data)); // [1, 2, 3, 4, 5];
print_r(call_user_func_array('array_merge',$data)); // [1, 2, 3, 4, 5];
print_r(array_reduce($data, 'array_merge', []));   // [1, 2, 3, 4, 5];

1 个答案:

答案 0 :(得分:1)

  

其实我想知道他们内部的工作方式

documentation for variable-length argument lists可能会为您提供一些信息。我不会将您提及的其他功能的文档链接起来,因为它们很容易谷歌。

我不知道它们是如何在内部工作的,但你可以通过PHP source code深入了解。请记住,它是用C语言编写的。

  

哪种方法更快?

结帐this answer on measuring performance of PHP code。 TLDR:测量microtime,或使用xdebug's profiling tool