我从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 (
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}
答案 0 :(得分:1)
如果您的输入数据的值集数量可能有所不同,我会寻求通用解决方案。您可以使用array_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
)
)
答案 1 :(得分:0)
是的,您可以使用合并功能,也可以使用for来将两个字段的值分配给具有“ ano_quarantine”和“ quarantine”字段的新数组。