Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 变换多维数组结构_Php_Arrays - Fatal编程技术网

Php 变换多维数组结构

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 ) ) 有

我从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}

是的,您可以使用合并函数,也可以使用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
        )
)

是的,这是可能的。你试过什么?