在我日常的办公室工作中,我必须处理不同类型的多维数组,有时我将它们平放到单个维度以用于我的工作目的。大多数时候我更喜欢 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];
答案 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。