我想在php中将子数组添加到一个单独的数组中

ste*_*eve 6 php arrays array-merge

我有这样的数组.........

Array
(
    [0] => Array
        (
            [0] => rose
            [1] => monkey
            [2] => donkey
        )

    [1] => Array
        (
            [0] => daisy
            [1] => monkey
            [2] => donkey
        )

    [2] => Array
        (
            [0] => orchid
            [1] => monkey
            [2] => donkey
        )

)
Run Code Online (Sandbox Code Playgroud)

我想要这样.........

Array
(
    [0] => rose
    [1] => monkey
    [2] => donkey
    [3] => daisy
    [4] => monkey
    [5] => donkey
    [6] => orchid
    [7] => monkey
    [8] => donkey
)
Run Code Online (Sandbox Code Playgroud)

....我使用了数组合并但它没有工作,因为我的数组生成动态,每次显示不同的数组.问题是我无法在array_merge()函数中动态传递数组.它只接受数组的手动条目而不接受任何其他变量.function只接受数组.

它像这样工作......

$total_data = array_merge($data[0],$data[1],$data[2]);
Run Code Online (Sandbox Code Playgroud)

因为每次它动态生成不同数量的数组所以我必须像这样使用....

$data_array = $data[0],$data[1],$data[2];

 $total_data = array_merge($data_array);
Run Code Online (Sandbox Code Playgroud)

但它显示错误"array_merge()[function.array-merge]:参数#1不是数组"......

Pra*_*dra 20

试试这个 :

$array  = your array

$result = call_user_func_array('array_merge', $array);

echo "<pre>";
print_r($result);
Run Code Online (Sandbox Code Playgroud)

或试试这个:

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;

}

$array  = Your array

$result = array_flatten($array);

echo "<pre>";
print_r($result);
Run Code Online (Sandbox Code Playgroud)