如何在php5中将二维数组转换为一维数组

时间:2012-01-06 08:02:56

标签: php arrays multidimensional-array

  

可能重复:
  Turning multidimensional array into one-dimensional array

我有这种数组

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功能都可用于此阵列转换吗?

6 个答案:

答案 0 :(得分:91)

对于您的有限用例,请执行此操作:

$oneDimensionalArray = array_map('current', $twoDimensionalArray);

当子数组有许多条目时,这可以更加通用:

$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);

答案 1 :(得分:14)

PHP array_merge­Docs函数可以展平您的数组:

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

如果原始数组的深度高于2个级别,则PHP中的SPL可以使用RecursiveArrayIterator来展平它:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);

请参阅: Turning multidimensional array into one-dimensional array

答案 2 :(得分:2)

尝试:

$new_array = array();
foreach($big_array as $array)
{
    foreach($array as $val)
    {
        array_push($new_array, $val);
    }    
}

print_r($new_array);

答案 3 :(得分:2)

$oneDim = array();
foreach($twoDim as $i) {
  $oneDim[] = $i[0];
}

答案 4 :(得分:1)

烨。

$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];

http://codepad.org/f9KjbCCb

答案 5 :(得分:0)

虽然 the page that was previously used to close this page 上的一些答案确实有适合这个问题的答案。由于输入数据结构的原因,针对此特定问题的技术不属于其他页面。

这里的示例数据结构是一个单元素索引数组。

var_export(array_column($array, 0));

就是这个问题所需要的全部内容。