如何在PHP中中断数组?

如何在PHP中中断数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想转换此数组… Array ( [0] => Array ( [1] => A1 [2] => A11 [3] => A111 ) [1] => Array ( [4] => A2 [5] => A22 ) [2] => Array ( [6] => A3 [7] => A33

我想转换此数组…

Array
(
[0] => Array
    (
        [1] => A1
        [2] => A11
        [3] => A111
    )

[1] => Array
    (
        [4] => A2
        [5] => A22
    )

[2] => Array
    (
        [6] => A3
        [7] => A33
    )

 )
作为

有谁能给我指点一下吗?

你要找的是“展平”这个词-你想展平这个阵列

php手册的注释中有一些示例代码:


你可以这样做

$flattened = call_user_func_array('array_merge', $your_array);
请注意,这需要数组索引具有数值才能正常工作。但看起来这不是问题。:)不过,它也不会保留原始索引,只会在最后添加新的值

$result = array_reduce($original, 'array_merge', array());
这相当于函数式编程中的。另请参阅上的PHP手册


如果要保留键->值绑定,请使用以下简单函数替换
array\u merge

function array_merge_with_keys($a, $b) {
  foreach($b as $key => $val) {
    $a[$key] = $val;
  }
  return $a;
}
用这个

$newarray = array();
foreach($array as $subarray) {
    foreach ($subarray as $key=>$value) {
        $newarray[$key] = $value;
    }
}

@安德烈-事实上,当我最初看到它时,它没有。标签中也应该有。可能是重复的我确信我第一次看到它时标题中没有“PHP”,但是帖子的历史记录中没有这个-有没有不是每个人都看到的修订?可能是重复的我也需要他们相应的键。现在它将从子数组中保存键:)。在这种情况下,您可能会错过一些内容,因为$array[0][1]=“A01”和$array[1][1]=“A11”,您将只收到$newarray[1]=“A11”,因为子数组中的键是相等的。嗨,本,谢谢您的回答。我得到了答案,但键值已更改,并生成了新的键。如何在此处使用旧的键值?
function array_merge_with_keys($a, $b) {
  foreach($b as $key => $val) {
    $a[$key] = $val;
  }
  return $a;
}
$newarray = array();
foreach($array as $subarray) {
    foreach ($subarray as $key=>$value) {
        $newarray[$key] = $value;
    }
}