繁体   English   中英

从 PHP 中的多维数组创建一个新数组

[英]Create a new array from a multidimensional array in PHP

我在 PHP 中有这种多维数组:

Array(
    [0] => Array(
        [continent] => Europe
        [country] => France
        [cities] => Array(
            [0] => Paris
            [1] => Nice
        )
    )
    [1] => Array(
        [continent] => North America
        [country] => Canada
        [cities] => Array(
            [0] => Toronto
            [1] => Ottawa
        )
    )
)

我想要做的是通过创建一个像这样的新数组来列出所有城市和国家:

Array(
    [0] => Array(
        [city] => Paris
        [continent] => Europe
        [country] => France
    )
    [1] => Array(
        [city] => Nice
        [continent] => Europe
        [country] => France
    )
    ...
)

这是我尝试过的:

foreach($continents as $continent => $cities) {
    foreach($cities as $city) {
        $arr[] = array('city' => $city, 'continent' => $continent, 'country' => $continent['country']);
    }
}

谢谢你的帮助。

关闭,您只需要更改是否从以下位置拉出国家/大陆:

<?php
$continents = [
    [
        'continent' => 'Europe',
        'country' => 'France',
        'cities' => ['Paris', 'Nice'],
    ],  
    [
        'continent' => 'North America',
        'country' => 'Canada',
        'cities' => ['Toronto', 'Ottawa'],
    ],  
];

$arr = [];
foreach($continents as $key => $value) {
    foreach($value['cities'] as $city) {
        $arr[] = [
            'city' => $city, 
            'continent' => $continents[$key]['continent'], 
            'country' => $continents[$key]['country']
        ];
    }
}

结果:

Array
(
    [0] => Array
        (
            [city] => Paris
            [continent] => Europe
            [country] => France
        )

    [1] => Array
        (
            [city] => Nice
            [continent] => Europe
            [country] => France
        )

    [2] => Array
        (
            [city] => Toronto
            [continent] => North America
            [country] => Canada
        )

    [3] => Array
        (
            [city] => Ottawa
            [continent] => North America
            [country] => Canada
        )

)

https://3v4l.org/suaMW

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM