将二维数组转换为单一数组的最佳方法

4

我想转换

$array_of_arrays = [[1,2,3],[4,5,6],[7,8],[9,10]];

进入

 $array = [1,2,3,4,5,6,7,8,9,10];

我可以使用

    $array = [];
 foreach($array_of_arrays as $one_array):
    $array = array_merge($array,$one_array);
   endforeach;          

但是我有一个非常长的数组,里面还有很多数组,请问有没有不需要foreach循环就能完成的方法或函数?

3个回答

6
使用 call_user_func_array 函数:
$array_of_arrays = [[1,2,3],[4,5,6],[7,8],[9,10]];
$result = call_user_func_array("array_merge", $array_of_arrays);
print_r($result);

输出结果:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
)

4
您可以使用array_mergecall_user_func_array来实现:
$res = call_user_func_array('array_merge', $array_of_arrays);
var_dump($res);

array(10) {
  [0] =>
  int(1)
  [1] =>
  int(2)
  [2] =>
  int(3)
  [3] =>
  int(4)
  [4] =>
  int(5)
  [5] =>
  int(6)
  [6] =>
  int(7)
  [7] =>
  int(8)
  [8] =>
  int(9)
  [9] =>
  int(10)
}

3

// 使用 array_merge 和 call_user_func_array

        $array_of_arrays = [[1,2,3],[4,5,6],[7,8],[9,10]];  
        $oneDimensionalArray = call_user_func_array('array_merge', $array_of_arrays);
        print_r( $oneDimensionalArray);

// 输出结果将是:数组([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10)
// 了解有关call_user_func_array()的更多信息,请访问PHP call_user_func with class and arguments

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接