PHP多维数组将具有相同索引号的值组合在一起

PHP多维数组将具有相同索引号的值组合在一起,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个多维数组结构: Array ( [0] => Array ( [0] => 0.5 ) [1] => Array ( [1] => 0.9 ) [2] => Array ( [1] => 0.6 ) [3] => Array (

我有一个多维数组结构:

Array
(
    [0] => Array
        (
            [0] => 0.5
        )

    [1] => Array
        (
            [1] => 0.9
        )

    [2] => Array
        (
            [1] => 0.6
        )

    [3] => Array
        (
            [0] => 0.3
        )

)
我想要的是将具有相同索引号的值组合起来。我期望的输出应该是:

Array
(
    [0] => Array
        (
            [0] => 0.5,
            [1] => 0.3
        )

    [1] => Array
        (
            [0] => 0.9,
            [1] => 0.6
        )

)

我是一个初学者,仍在学习基础知识。请帮忙。谢谢。

您可以创建一个新数组
$res
,它最终将使用分组值保存嵌套数组。使用
foreach
可以从起始数组循环遍历每个内部数组,然后对于每个内部数组,循环遍历其中的键/值。内部数组中的键是结果数组(
$res
)中的索引,当前的
$val
应该被推入该数组

有关更多详细信息,请参见下面示例中的代码注释:

$res = [];
foreach($arr as $inner) { // loop through each inner array `[0 => 0.5]`, `[1 => 0.9]` etc...
  foreach($inner as $key=>$val) { // for each key (0, 1, etc) and value (0.5, 0.9, etc) populate your $res
    $res[$key][] = $val; // append $val to the array at index $key, if the array doesn't exist, create it and add $val
  }
}
print_r($res);
输出:

Array
(
    [0] => Array
        (
            [0] => 0.5
            [1] => 0.3
        )

    [1] => Array
        (
            [0] => 0.9
            [1] => 0.6
        )
)

单击查看一个可运行的示例

您可以创建一个新数组
$res
,它最终将使用分组值保存嵌套数组。使用
foreach
可以从起始数组循环遍历每个内部数组,然后对于每个内部数组,循环遍历其中的键/值。内部数组中的键是结果数组(
$res
)中的索引,当前的
$val
应该被推入该数组

有关更多详细信息,请参见下面示例中的代码注释:

$res = [];
foreach($arr as $inner) { // loop through each inner array `[0 => 0.5]`, `[1 => 0.9]` etc...
  foreach($inner as $key=>$val) { // for each key (0, 1, etc) and value (0.5, 0.9, etc) populate your $res
    $res[$key][] = $val; // append $val to the array at index $key, if the array doesn't exist, create it and add $val
  }
}
print_r($res);
输出:

Array
(
    [0] => Array
        (
            [0] => 0.5
            [1] => 0.3
        )

    [1] => Array
        (
            [0] => 0.9
            [1] => 0.6
        )
)

单击查看一个可运行的示例

如果这些索引值是一个固定且有限的集合,则您可以简单地执行以下操作:

<?php
$input = [
  [ 0 => 0.5 ],
  [ 1 => 0.9 ],
  [ 1 => 0.6 ],
  [ 0 => 0.3 ]
];

$output = [
  0 => array_column($input, 0), 
  1 => array_column($input, 1)
];

print_r($output);

如果这些索引值是一个固定且有限的集合,那么您可以简单地执行以下操作:

<?php
$input = [
  [ 0 => 0.5 ],
  [ 1 => 0.9 ],
  [ 1 => 0.6 ],
  [ 0 => 0.3 ]
];

$output = [
  0 => array_column($input, 0), 
  1 => array_column($input, 1)
];

print_r($output);

您可以从foreach循环开始,在某个数组中收集索引,然后再次循环并分配。您可以从foreach循环开始,在某个数组中收集索引,然后再次循环并分配。