当前位置: 首页 > 知识库问答 >
问题:

使用PHP[重复]迭代JSON文件

墨安阳
2023-03-14

我有一个JSON文件,其中包含世界各地的大学列表。我想只获得特定的大学,其中数组中的字段与我需要选择的内容相匹配。我面临的问题是,每所大学都有自己的身份证号,这使得我无法弄清楚如何迭代数组。JSON文件可以在这个GitHub回购中找到。

使我将JSON文件转换为数组的代码:

<?php
    $json = file_get_contents('universities_list.json');
    $universityArray = json_decode($json, true);

    print_r($universityArray);
?>

我得到的一个样本是:

[2942] => Array
        (
            [alpha_two_code] => EG
            [country] => Egypt
            [domain] => aast.edu
            [name] => Arab Academy for Science & Technology
            [web_page] => http://www.aast.edu/
        )

    [2943] => Array
        (
            [alpha_two_code] => EG
            [country] => Egypt
            [domain] => akhbaracademy.edu.eg
            [name] => Akhbar El Yom Academy
            [web_page] => http://www.akhbaracademy.edu.eg/
        )

什么是最好的或适当的方式打印出来只有大学与alpha_two_code=='EG'=='埃及'例如?

我读了Foreach循环上的留档和例子。但还是得不到得到我上面提到的逻辑。

共有3个答案

慕承恩
2023-03-14

你需要阅读手册。

试试这个:

$names = array();
foreach($universityArray as $u) {
  if($u['alpha_two_code'] == 'EG' || $u['country'] == 'Egypt'){
    $names[] = $u['name'];
  }
}

print_r($names);
谭光辉
2023-03-14

您可以使用alpha\u two\u code作为索引。

$indexed = [];
foreach($universityArray as $university){
    $index = $university['alpha_two_code'];
    if(!isset($indexed[$index])){
        $indexed[$index] = [];
    }
    $indexed[$index][] = $university;
}

现在你将有大学分开的alpha_two_code,你可以直接访问。

print_r($indexed['EG']);

现在,根据最佳和适当的部分,您可能想要缓存$index。您可以为大学创建一个目录,并将JSON编码的$index保存在那里。

夹谷飞龙
2023-03-14

仅在特定国家/地区检查此申报表

<?php
        $json = file_get_contents('university.json');
        $universityArray = json_decode($json, true);
        universities= array()
        for($i=0; $i< count($universityArray); $i++)
        {  
            if($universityArray[$i]["country"] == "Morocco")
             universitises[] = $universityArray[$i];
        }
        var_dump($universitises); 

?

 类似资料:
  • 我有一个要迭代通过的JSON对象。 我正在使用映射这些值,我认为这是处理对象的正确方法: 但是,当我希望对象返回时,上面的返回以下内容: 为什么它返回的是值,而不是对象?

  • 问题内容: 我正在尝试使用JADE迭代JSON文档。 我的服务器(运行node.js + express)正在对.get()请求执行以下操作, 这就是它呈现给客户端的东西。 我已经阅读了有关迭代数组的jade文档,并且我认为对于JSON来说,它是相同的,但是它不起作用。它只是显示一个空白。当我尝试这个 它将显示JSON文档。但是当我尝试这个 并显示空白。应该显示的时间是“电视”。如果有人可以帮助我

  • 问题内容: 我从网络服务器获取以下JSON字符串。 我想要公开HTML中的JSON,我尝试了以下操作,但未填写字段,我也收到了“无异常”,因此我很难找出其不起作用的原因。 TS 的HTML 问题答案: 您可以使用来从对象获取键(需要IE AFAIK中的polyfill)

  • 有存储库文件夹,其中有100个图像文件夹。我想遍历每个文件夹,然后对这些文件夹中的图像执行相同的操作。 例如:存储库—— 有人知道优雅的做法吗? 我的操作系统是MacOS(里面有DS_Store元数据文件)

  • 我有一个我正在使用的API,它每5秒钟接受一次呼叫,比它不会响应的任何时间都多。在每次调用中,它将在一批中接受5条记录。我有一个1000条记录的列表,我需要使用api来检查,所以我想做的是每5秒钟把我的记录列表分成5个批次发送给它。 我可以让它大部分工作,但我不能计算的一点是分解记录列表,这是一个成批数组,你知道怎么做吗? 这是我在下面使用的代码,但是它每5秒钟输出一次数组的每个单独部分,而不是每

  • $.getJSON可能会产生误导,但我想做的是通过PHP文件从url获取JSON。 这在javascript中运行良好。当我用谷歌从url获取JSON时,可能是因为我在学习PHP,但我似乎找不到一个有效的答案。或者,当我在google$.getJSON上搜索时,有人试图从PHP文件中获取Json。 我所有的数据都是通过一个谷歌表格存储的,我通过调用谷歌脚本访问,它会将其发送回来,我可以获取我想要的