Как преобразовать двумерный массив в одномерный массив в php5
Возможный дубликат:
Включение многомерного массива в одномерный массив
У меня есть такой массив
Array
(
[0] => Array
(
[0] => 88868
)
[1] => Array
(
[0] => 88867
)
[2] => Array
(
[0] => 88869
)
[3] => Array
(
[0] => 88870
)
)
Мне нужно преобразовать это в одномерный массив. Как я могу это сделать?
Например, вот так..
Array
(
[0] => 88868
[1] => 88867
[2] => 88869
[3] => 88870
)
Для этого преобразования массива доступны любые встроенные функции php?
Ответы
Ответ 1
Для вашего ограниченного варианта использования это сделает следующее:
$oneDimensionalArray = array_map('current', $twoDimensionalArray);
Это может быть более обобщенным, если в subarrays есть много записей:
$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);
Ответ 2
Функция PHP array_merge
& shy; Docs может сгладить ваш массив:
$flat = call_user_func_array('array_merge', $array);
Если исходный массив имеет более высокую глубину, чем 2 уровня, SPL в PHP имеет RecursiveArrayIterator
, который вы можете использовать для выравнивания это:
$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);
Смотрите также: Включение многомерного массива в одномерный массив
Ответ 3
$oneDim = array();
foreach($twoDim as $i) {
$oneDim[] = $i[0];
}
Ответ 4
попробовать:
$new_array = array();
foreach($big_array as $array)
{
foreach($array as $val)
{
array_push($new_array, $val);
}
}
print_r($new_array);
Ответ 5
Да.
$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];
http://codepad.org/f9KjbCCb