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


How to convert 2 D array to 1 D array in PHP

如何转换像
这样的数组

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

Array
    (
        A
        B
        C
        D
        E
        F
    )

我尝试使用foreach键值并将值分配给新数组,但即使是新数组也将是2D形式的

这不是一个2d数组。它是一个1d数组。。。PHP中的所有数组都包含键/值对。所以

array('A','B') 

是一个值为a和B的1d数组,键会自动指定给它们(0和1)作为它们在该数组中的偏移位置。

2d阵列可能类似于

array( array('A','B')
       array('C','D')
     ) 

您可能应该了解一下2D阵列是什么:

1D阵列:

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

1D联想阵列:

Array
(
    [foo] => A
    [bar] => B
    [moreFoo] => C
    [someElse] => D
)

2D阵列:

Array
(
    [0] => Array
    (
        [0] => A
        [1] => B
        [2] => C
        [3] => D
        [4] => E
        [5] => F
    )
    [1] => Array
    (
        [0] => A
        [1] => B
        [2] => C
        [3] => D
        [4] => E
        [5] => F
    )
    [2] => Array
    (
        [0] => A
        [1] => B
        [2] => C
        [3] => D
        [4] => E
        [5] => F
    )
)

二维关联阵列:

Array
(
    [foo] => Array
    (
        [foo] => A
        [bar] => B
        [moreFoo] => C
        [someElse] => D
    )
    [name] => Array
    (
        [foo] => A
        [bar] => B
        [moreFoo] => C
        [someElse] => D
    )
    [thirdElement] => Array
    (
        [foo] => A
        [bar] => B
        [moreFoo] => C
        [someElse] => D
    )
)

你的问题没有意义。。。如果你有一个"平面"数组,你将如何寻址,例如它的第三个元素?

正如@Shiplu在评论中提到的那样,你作为例子使用的数组已经是一维数组,二维数组是的形式

$array['level1']['level2'] = 'value';

php中的所有数组都有键,无论您在创建数组时是否分配它们。索引从0开始,因此您可以访问A,例如使用0,使用1等访问B。

如果我正确理解你的问题,你想转换一个未排序的索引数组类似于:

array (
    [2] => A,
    [5] => B,
    [8] => C,
    ["x"] => D,
    ["v"] => E,
    [0] => F
);

array (
    A,
    B,
    C,
    D,
    E,
    F
);

如果是这种情况,则使用array_values函数。

$arr = array_values($arr);