如何将二维数组展平为一维数组?
例如:
Array
(
[1] => Array
(
[key] => val
[key2] => val2
)
)
成为:
Array
(
[key] => val
[key2] => val2
)
答案 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.