如何在PHP中将2 D数组转换为1 D数组

时间:2012-03-28 08:02:58

标签: php arrays

如何转换像

这样的数组
Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
    [4] => E
    [5] => F
)

Array
    (
        A
        B
        C
        D
        E
        F
    )

我尝试使用foreach键值并为新数组赋值,但即使是新数组也将采用2D格式

5 个答案:

答案 0 :(得分:3)

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

array('A','B') 

是具有值A和B的1d数组,其中键被自动分配(0和1)作为该数组中的偏移位置。

二维数组就像

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

答案 1 :(得分:2)

您应该查看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
    )
)

2D关联数组:

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
    )
)

答案 2 :(得分:0)

你的问题没有意义......如果你有那个“扁平”阵列,你将如何解决,例如它的第3个元素?

同样如评论中提到的@Shiplu一样,您用作示例的数组已经是一维数组,二维数组的形式为

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果我正确理解了您的问题,您希望转换未排序的索引数组,类似于:

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);