在数组中搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数组中搜索相关的知识,希望对你有一定的参考价值。

我有一个api,在一个数组里面有一个数组列表,这个数组里面的每个数组它有一个键[属性],在这个键里面有一个数组,键是[CITY_NAME]。

这是我的数组,来自于apithis数组的数字是0,但是每天这个数字都在变化,我的数字也会出错,有什么好的方法可以让我的城市数字一直使用[CITY_NAME]这个键。

我使用以下代码来获取数据

$json = file_get_contents($url);
$json_data = json_decode($json, true);
$data = $json_data['features'];
$mycity = $data[0]['attributes'];

Array
(
    [0] => Array
        (
            [attributes] => Array
                (
                    [CITY_NAME] => city1
                    [Name] => city1
                    [ADMIN_NAME] => city1
                    [POP_CLASS] => 5,000,000 to10,000,000
                    [Population] => 7676654
                    [Population_Data_Source] => Wikipedia
                    [Population_Data_Date] => 2018
                    [CityID] => 14
                    [Longitude] => 46.7614868685786
                    [Latitude] => 24.7388786516234
                    [Confirmed] => 0
                    [Recovered] => 0
                    [Deaths] => 0
                    [Active] => 0
                    [Tested] => 0
                    [Name_Eng] => city1
                    [Join_Count] => 61
                    [Confirmed_SUM] => 5152
                    [Deaths_SUM] => 9
                    [Recovered_SUM] => 1407
                    [Active_SUM] => 3736
                    [Tested_SUM] => 376607
                    [ObjectId] => 14
                )

        )
 [1] => Array
    (
        [attributes] => Array
            (
                [CITY_NAME] => city2
                [Name] => city2
                [ADMIN_NAME] => city2
                [POP_CLASS] => 1,000,000 to 5,000,000
                [Population] => 1675368
                [Population_Data_Source] => Wikipedia
                [Population_Data_Date] => 2010
                [CityID] => 9
                [Longitude] => 39.8148987363852
                [Latitude] => 21.4273876500039
                [Confirmed] => 0
                [Recovered] => 0
                [Deaths] => 0
                [Active] => 0
                [Tested] => 0
                [Name_Eng] => city2
                [Join_Count] => 59
                [Confirmed_SUM] => 6848
                [Deaths_SUM] => 85
                [Recovered_SUM] => 1145
                [Active_SUM] => 5618
                [Tested_SUM] => 0
                [ObjectId] => 9
            )

    )
答案

由于我可能有误解,而你可能有很多误解,所以只要建立一个新的数组与 CITY_NAME:

foreach($data as $values) 
    $result[$values['attributes']['CITY_NAME']] = $values['attributes'];

现在您可以通过以下方式进入 CITY_NAME:

echo $result['city1']['Population'];

这可能更容易。 提取所有 attributes 中的所有数组创建一个数组,然后从这个数组中创建一个以 CITY_NAME:

$data = array_column(array_column($json_data['features'], 'attributes'), 
                     null, 'CITY_NAME');

以上是关于在数组中搜索的主要内容,如果未能解决你的问题,请参考以下文章

如果我有多个数组并且我想在所有数组中搜索,如何在 java 中搜索字符串?

在 Swift 中搜索字典数组的值

许多排序数组中的二进制搜索

无法在数组中搜索最大值

在数组中搜索一个数字 10 次并计算每次搜索的时间

在数组中搜索