用于显示匹配表单数据库的API上的Foreach循环过滤

时间:2017-05-28 10:45:10

标签: php arrays wordpress api

我正在进行API集成。现在我有一个问题。 1我试图显示所有特定的城市酒店,我的数据库中有哪个城市。第一个FOREACH在我的数据库城市也搜索了它的搜索酒店,但在第二个FOREACH我试图显示第一个FOREACH城市酒店只显示匹配酒店,酒店从数据库匹配,但没有工作。

我的任务是:首先按城市搜索哪个城市在我的数据库中,第二次搜索第一次酒店,并显示酒店仅匹配我的数据库酒店。

第一个foreach:

if($RowCount>0){
            foreach($Results as $Result){
                foreach($api_array as &$value){
                    if($Result['county'] == $value['address']['city']){ 
                        $final_array[] = $value; 
                    } 
                } 
            }
        }

第二个foreach:

foreach($final_array as &$display){
            var_dump($display);
            if($Result['hotel'] == $display['property_name']){ 
                $final_array2[] = $display; 
            }  
        }

var_dump“$ display”它运作良好,并显示匹配城市与数据库: property_name = "Jurys Inn Cork"有我的数据库。我怎么才能展示这个Jurys Inn Cork阵列。

array (size=12)
  'property_code' => string 'YXORKOHH' (length=8)
  'property_name' => string 'Oriel House Hotel' (length=17)
  'location' => 
    array (size=2)
      'latitude' => float 51.88801
      'longitude' => float -8.60129
  'address' => 
    array (size=4)
      'line1' => string 'Ballincollig' (length=12)
      'city' => string 'Cork' (length=4)
      'postal_code' => string '00000' (length=5)
      'country' => string 'IE' (length=2)

array (size=12)
  'property_code' => string 'UIORK970' (length=8)
  'property_name' => string 'Cork Airport Hotel' (length=18)
  'location' => 
    array (size=2)
      'latitude' => float 51.85213
      'longitude' => float -8.48631
  'address' => 
    array (size=3)
      'line1' => string 'Cork Airport' (length=12)
      'city' => string 'Cork' (length=4)
      'country' => string 'IE' (length=2)

array (size=12)
  'property_code' => string 'JIORKCOR' (length=8)
  'property_name' => string 'Jurys Inn Cork' (length=14)
  'location' => 
    array (size=2)
      'latitude' => float 51.89956
      'longitude' => float -8.46428
  'address' => 
    array (size=4)
      'line1' => string 'Andersons Quay' (length=14)
      'city' => string 'Cork' (length=4)
      'postal_code' => string '00000' (length=5)
      'country' => string 'IE' (length=2)

完整代码:

    foreach($array as $api_array){
        $final_array = array(); 
        $Results = $wpdb->get_results( "select * FROM hotels where county = '$countyname'",ARRAY_A );
        $RowCount  =  $wpdb->num_rows;

        if($RowCount>0){
            foreach($Results as $Result){
                foreach($api_array as &$value){
                    if($Result['county'] == $value['address']['city']){ 
                        $final_array[] = $value; 
                    } 
                } 
            }
        }
        foreach($final_array as &$display){
            if($Result['hotel'] == $display['property_name']){ 
                $final_array2[] = $display; 
            }  
        }
    }

1 个答案:

答案 0 :(得分:0)

在第二个foreach循环中替换它。

       foreach($Results as $Result){
            foreach($final_array as &$display){
                if($Result['hotel'] == $display['property_name']){ 
                    $final_array2[] = $display;
                }  
            }
        }