How to merge mutiple array in a single array

痴心易碎 提交于 2019-12-19 11:58:18

问题


As i searched alot but didn't get perfect solution of merging array in one single array. These arrays are Dynamic (may be increase in future- would 50+). So for that we have to use count() or for loops to fetch and then merge.

Here's my code which i'm trying to resolve over core level. Please anyone tell me how may receive all values in Single array.

Array(
[0] => Array
    (
        [0] => 123
        [1] => 108
        [2] => 58
        [3] => 23
    )

[1] => Array
    (
        [0] => 93
        [1] => 94
        [2] => 95
        [3] => 172
        [4] => 30
    )

[2] => Array
    (
        [0] => 109
        [1] => 81
        [2] => 79
        [3] => 155       )

)`

My expectation of result is: (which i'm unable to get)

 Array
(
    [0] => 123
    [1] => 108
    [2] => 58
    [3] => 23
    [4] => 93
    [5] => 94
    [6] => 95
    [7] => 172
    [8] => 30
    [9] => 109
    [10] => 81
    [11] => 79
    [12] => 155
)

回答1:


Use array_merge with splat operator,

$result = array_merge(...$arr);

array_merge — Merge one or more arrays

Splat operator - Since PHP 5.6, you can use splat operator (...) to create simpler variadic functions (functions that take an undefined number of arguments).

Demo

Output:-

Array
(
    [0] => 123
    [1] => 108
    [2] => 58
    [3] => 23
    [4] => 93
    [5] => 94
    [6] => 95
    [7] => 172
    [8] => 30
    [9] => 109
    [10] => 81
    [11] => 79
    [12] => 155
)



回答2:


using array_merge()

$a[0] = [1,2,3];
$a[1] = [4,5,6];
$a[2] = [7,8,9];
$newArr = [];

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

assuming that your array will grow, you can use foreach like this :

$a[0] = [1,2,3];
$a[1] = [4,5,6];
$a[2] = [7,8,9];
$newArr = [];

foreach($a as $index){
   foreach($index as $item){
      array_push($newArr, $item);
   }
}



回答3:


As i used this technique. I got my answer in just a simple way. of array_flatten

print_r(array_flatten($overall_arr)); 


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


来源:https://stackoverflow.com/questions/58231656/how-to-merge-mutiple-array-in-a-single-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!