Подтвердить что ты не робот

Как преобразовать двумерный массив в одномерный массив в 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?

4b9b3361

Ответ 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