Я хочу добавить вспомогательные массивы в один массив в php
У меня есть массив вроде этого.........
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
)
)
и я хочу, как это.........
Array
(
[0] => rose
[1] => monkey
[2] => donkey
[3] => daisy
[4] => monkey
[5] => donkey
[6] => orchid
[7] => monkey
[8] => donkey
)
.... Я использовал слияние массива, но он не работает, потому что мой массив генерирует dymaically и каждый раз показывает разные массивы.
Проблема заключается в том, что я не могу динамически передавать массивы в функции array_merge(). Он принимает только вручную записи массива и не принимает никакой другой переменной .function принимает только массив.
он работает так...
$total_data = array_merge($data[0],$data[1],$data[2]);
поскольку каждый раз он генерирует разные числа массива динамически, так что
я должен использовать вот так....
$data_array = $data[0],$data[1],$data[2];
$total_data = array_merge($data_array);
но он показывает ошибку "array_merge() [function.array-merge]: Аргумент # 1 не является массивом"......
Ответы
Ответ 1
Попробуйте следующее:
$array = your array
$result = call_user_func_array('array_merge', $array);
echo "<pre>";
print_r($result);
Или попробуйте следующее:
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);
Ответ 2
попробуйте это.....
$result = array();
foreach($data as $dat)
{
foreach($dat as $d)
{
$result[] = $d;
}
}