Php 变换多维数组结构
我从mySQL咨询中得到了一个带有日期的数组。但是,数据的格式如下:Php 变换多维数组结构,php,arrays,Php,Arrays,我从mySQL咨询中得到了一个带有日期的数组。但是,数据的格式如下: Array ( [ano_quarantine] => Array ( [0] => 2020 [1] => 2019 [2] => 2018 [3] => 2017 [4] => 2016 ) [quarantine] => Array ( [0] => 61 [1] => 1 [2] => 1 [3] => 2 [4] => 2 ) ) 有
Array (
[ano_quarantine] => Array ( [0] => 2020 [1] => 2019 [2] => 2018 [3] => 2017 [4] => 2016 )
[quarantine] => Array ( [0] => 61 [1] => 1 [2] => 1 [3] => 2 [4] => 2 ) )
有没有办法将数组更改为以下结构
Array (
0: {ano_quarantine: "2020", quarantine: 61}
1: {ano_quarantine: "2019", quarantine: 1}
2: {ano_quarantine: "2018", quarantine: 1}
3: {ano_quarantine: "2017", quarantine: 2}
4: {ano_quarantine: "2016", quarantine: 2}
是的,您可以使用合并函数,也可以使用for将这两个字段的值分配给具有字段“ano_quantial”和“quantial”的新数组。我选择了一种通用解决方案,以防您的输入数据在值集的数量上有所不同。您可以使用
array\u keys
查找数组的所有键,然后迭代第一个子数组的键,将外部数组的键与该键索引的数组的每一列组合起来:
$result = array();
$keys = array_keys($array);
foreach (array_keys($array[$keys[0]]) as $key) {
$result[] = array_combine($keys, array_column($array, $key));
}
print_r($result);
Array
(
[0] => Array
(
[ano_quarantine] => 2020
[quarantine] => 61
)
[1] => Array
(
[ano_quarantine] => 2019
[quarantine] => 1
)
[2] => Array
(
[ano_quarantine] => 2018
[quarantine] => 1
)
[3] => Array
(
[ano_quarantine] => 2017
[quarantine] => 2
)
[4] => Array
(
[ano_quarantine] => 2016
[quarantine] => 2
)
)
是的,这是可能的。你试过什么?