如何动态组合php中的数组?

How to combine array in php to dynamically?

我有这样的代码

$a =[
      [1,2],
      [4,6],
      [10,24]
    ];

我想要这样的输出

    Array
    (
      [0] => 1
      [1] => 2
      [2] => 4
      [3] => 6
      [4] => 10
      [5] => 24
    )

我使用这样的代码

print_r(array_merge($a[0],$a[1],$a[2]));

如果有这样的代码并且有更多数据

    Array
   (
    [0] => Array
        (
            [0] => 1
            [1] => 2
        )
    [1] => Array
        (
            [0] => 4
            [1] => 6
        )
    [2] => Array
        (
            [0] => 10
            [1] => 24
        )
       .
       .
       .
     [60] => Array
            [0] => 67
            [1] => 8
     ) 

这样写不好

print_r(array_merge($a[0],$a[1],$a[2],...,...,...,$a[58]));

动态里面怎么用array_merge

您可以使用以下功能。

function func($array) { 
    $result = array(); 
    foreach ($array as $key => $value) { 
      if (is_array($value)) { 
        $result = array_merge($result, func($value)); 
      } 
      else { 
        $result[$key] = $value; 
      } 
    } 
    return $result; 
  } 

尝试:

function my_array_merge($array1, $array2) {
    foreach ($array2 as $key => $val) {
        if (is_array($val)) {
            $array1[$key] = my_array_merge($array1[$key], $array2[$key]);
        } else {
            if (is_numeric($key)) {
                $array1[] = $array2[$key];
            } else {
                $array1[$key] = $array2[$key];
            }
        }
    }
    return $array1;
}

据我所知,上面的代码与 array_merge() 完全一样,但在其中合并了数组:

$arr1 = array(array("a"));
$arr2 = array(array("b"));

将变为:

Array (
        [0] => Array (
                [0] => a
                [1] => b
        )
)

你可以使用这个:

$a =[
      7,
      [1,2],
      [4,6],
      [10,24],
      [[30,40],[2,9]]
    ];

function mrg($array){
    $out = [];
    foreach($array as $b){
        if(is_array($b))
            $out = array_merge($out, mrg($b));
        else
            $out[] = $b;
    }
    return $out;
}

print_r(mrg($a));
$result = array_reduce($a, fn($carry, $item) => array_merge($carry, $item), []);