2016-10-10 9 views
-1

別の配列の内部に存在しない配列の結果を取得しようとしています。たとえば、$のairports_apexコードは、私が一致する何かをunsetingていますが、何らかの理由で、それはそれをしないので、あなたが配列の多次元配列との照合

 array('id' => '56','code' => 'QQQ','airport_name' => 'Seattle1, WA'), 
     array('id' => '56','code' => 'DDD','airport_name' => 'Seattle2, WA'), 
     array('id' => '56','code' => 'TTT','airport_name' => 'Seattle3, WA'), 
     array('id' => '56','code' => 'FFF','airport_name' => 'Seattle4, WA'), 
     array('id' => '56','code' => 'JJJ','airport_name' => 'Seattle5, WA'), 
     array('id' => '56','code' => 'YYY','airport_name' => 'Seattle6, WA'), 
     array('id' => '56','code' => 'MMM','airport_name' => 'Seattle7, WA'), 

を返す必要があります$のairports_ifと一致していません。

私はarray_diff_assoc()を使用すると方向が変わりましたが、 "Array to string conversion"エラーが発生すると思いますので、このメソッドをフルコードで試してみました。

提案がありますか?

これは完全なコードです。

$airports_if = array(
    array('id' => '0','code' => '--','airport_name' => ''), 
    array('id' => '1','code' => 'LAX','airport_name' => 'Los Angeles International, CA'), 
    array('id' => '2','code' => 'APA','airport_name' => 'Arapahoe, CO'), 
    array('id' => '3','code' => 'APF','airport_name' => 'Naples, FL'), 
    array('id' => '4','code' => 'ASE','airport_name' => 'Aspen, CO'), 
    array('id' => '5','code' => 'AUS','airport_name' => 'Austin, TX'), 
    array('id' => '6','code' => 'BAK','airport_name' => 'Columbus, IN'), 
    array('id' => '7','code' => 'BJC','airport_name' => 'Jeffco, CO'), 
); 


$airports_apex = array(
    array('id' => '0','code' => '--','airport_name' => ''), 
    array('id' => '54','code' => 'BCT','airport_name' => 'Boca Raton, FL'), 
    array('id' => '55','code' => 'BED','airport_name' => 'Bedford, MA'), 
    array('id' => '56','code' => 'BFI','airport_name' => 'Seattle, WA'), 
    array('id' => '56','code' => 'QQQ','airport_name' => 'Seattle1, WA'), 
    array('id' => '56','code' => 'DDD','airport_name' => 'Seattle2, WA'), 
    array('id' => '56','code' => 'TTT','airport_name' => 'Seattle3, WA'), 
    array('id' => '56','code' => 'FFF','airport_name' => 'Seattle4, WA'), 
    array('id' => '56','code' => 'JJJ','airport_name' => 'Seattle5, WA'), 
    array('id' => '56','code' => 'YYY','airport_name' => 'Seattle6, WA'), 
    array('id' => '56','code' => 'MMM','airport_name' => 'Seattle7, WA'), 
); 

foreach ($airports_if as $key=>$value) { 
     foreach ($airports_apex as $ap_key => $ap_value){ 
      if ($value['code'] == $ap_value['code']){ 
       unset($airports_apex[$key]); 
      } 
     } 
} 

答えて

2

あなたは$airports_ifからキーを使用して$airports_apexから設定解除しているように見えます。試してみてください

foreach ($airports_if as $key=>$value) { 
     foreach ($airports_apex as $ap_key => $ap_value){ 
      if ($value['code'] == $ap_value['code']){ 
       unset($airports_apex[$ap_key]); 
      } 
     } 
}