PHP将两个维度的数组展平为一维数组

时间:2011-03-30 14:20:05

标签: php arrays

如何将二维数组展平为一维数组?

例如:

Array
(
    [1] => Array
        (
            [key] => val
            [key2] => val2
        )
)

成为:

Array
(
   [key] => val
   [key2] => val2
)

5 个答案:

答案 0 :(得分:4)

为您的示例:

$myarray = array_shift($myarray);

$myarray = $myarray[1];

<强>但

可能有多个子阵列吗?

如果是这样的话:这个子数组是否具有同名的密钥?

如果是这样的话:重复项会发生什么?将它们全部重命名?除了一个之外什么都没有?

如您所见,您必须提供更多相关信息。问题真的不明确。

答案 1 :(得分:1)

$array = array_shift($array);   

这也将处理密钥,它不一定是所有数组以0或1或任何东西开始。

答案 2 :(得分:1)

一种显而易见的方法是foreach在数组上(最好通过引用,以保存一遍又一遍地复制所有数据),并array_combine将它们放入一个新数组中。

这样的事情:

$b = array();
foreach($arr as &$a) $b = array_combine($b, $a);
$arr = $b;

虽然正如其他人指出的那样,在你的特殊情况下,array_shift就足够了。

答案 3 :(得分:0)

答案 4 :(得分:0)

假设您的密钥是唯一的

$oneDArray = array();
foreach($multiDimensionalArray as $k=>$v) {
    $oneDArray[$k]=$v;
}
unset($multiDimensionalArray); //If you don't want to keep it.