使用PHP从Json数组中提取精确值(如MySQL数据库)

时间:2015-08-08 15:28:20

标签: php arrays json

另一个(可能)简单的问题。

正如我多次写作,我不是程序员,但多亏了你,我能够建立一个有趣的网站供我使用。

再次thx。

这是我的新问题: 我有一个网站从文件中恢复json数据并每天在本地存储一次(这是代码 - 我发布它以便对任何人都有用):

   // START
   findList();

   function findList() {
      $serverName = strtolower($_POST["Server"]); // GET SERVER FROM FORM POST      
      $localCoutryList = ("json/$serverName/countries.json");  // LOCAL LOCATIONS OF FILE
      $urlCountryList = strtolower("url.from.where.I.get.Json.file.$serverName/countries.json");  // ONLINE LOCATION OF FILE

      if (file_exists($localCoutryList)) {  // FILE EXIST
           $fileLastMod = date("Y/m/d",filemtime($localCoutryList)); // IF FILE LAST MOD = FILE DATE TIME
           $now = date('Y/m/d', time());  // NOW
           if ($now != $fileLastMod) {  // IF NOW != FILE LAST MOD (date)
              createList($serverName,$localCoutryList,$urlCountryList); // GO AND CREATE FILE
           } else { // IF NOW = FILE LAST MOD (date)
              jsonList($serverName,$localCoutryList,$urlCountryList); // CALL JSON DATA FROM FILE 
      }} else {  // FILE DOESN'T EXIST
           createList($serverName,$localCoutryList,$urlCountryList); // CALL CREATE FILE
      }};       

   function createList($serverName,$localCoutryList,$urlCountryList) {      
       file_put_contents($localCountryList, file_get_contents($urlCountryList)); // CREATE FILE 
       jsonList($serverName);  // CALL JSON DATA FROM FILE
   };

   function jsonList($serverName,$localCoutryList,$urlCountryList) { // JSON DATA FROM FILE

        $jsonLoopCountry = file_get_contents($localCoutryList);  // GET CONTENT OF THE LOCAL FILE
        $outLoopCountry = json_decode($jsonLoopCountry, true);   // DECODE JSON FILE 

        $countryList = $outLoopCountry['country'];  // ACCESS TO JSON OBJECT

        foreach ($countryList as $dataCountry) {  // FOR EACH "COUNTRY" IN JSON DECODED OBJECT
           // SET VARS FOR ALL THE COUNTRIES
           $iscountryID = ($dataCountry['id']);  // TEST
           $countryCurrency = ($dataCountry['curr']);  // TEST
           $countryName = ($dataCountry['name']);}  // TEST

           echo "<br>total country list: ".count($countryList); // THIS RETURN TOTAL ELEMENTS IN THE ARRAY

          [...]

我正在使用的Json数据的结构如下:

   {"country":[{"id":130,"curr":"AFN","name":"Afghanistan"},{"id":55,"curr":"ALL","name":"Albania"},{"id":64,"curr":"DZD","name":"Algeria"},{"id":65,"curr":"AOA","name":"Angola"},{"id":24,"curr":"ARS","name":"Argentina"}...

所以我可以这么说

    $outLoopCountry = json_decode($jsonLoopCountry, true);   // DECODE JSON FILE

创建JSON ARRAY吧? (因为JSON数组以{“something”开头:[{“...”...) 如果它是[{“a”:“回答”,“b”:“回答”,......} ......它会是一个JSON对象吗?

所以访问我使用的数组

  $countryList = $outLoopCountry['country'];  // ACCESS TO JSON OBJECT

正确?

所以我理解数组是存储关系数据和访问它的一种快速有用的方法吗?

所以问题是如何在数组中进行精确搜索,以使其像查询MySQLi一样工作,例如“SEARCH INSIDE ARRAY WHERE id == 7”,结果为“== ITALY”(ex )。

这种方式确实存在,但是我在网上找到了整个例子,我能够修复一个以使其有效。

再次感谢。

Alberto

0 个答案:

没有答案