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循环开始,在某个数组中收集索引,然后再次循环并分配。