2014-04-29 112 views
0

我有这样的阵列结构的阵列更换值:从另一个阵列

stdClass Object 
(
    [carrierFsCode] => VX 
    [flightNumber] => 925 
    [departureAirportFsCode] => LAX 
    [arrivalAirportFsCode] => SFO 
    [stops] => 0 
    [departureTerminal] => 3 
    [arrivalTerminal] => 2 
    [departureTime] => 2014-04-28T07:00:00.000 
    [arrivalTime] => 2014-04-28T08:20:00.000 
    [flightEquipmentIataCode] => 32S 
    [isCodeshare] => 
    [isWetlease] => 
    [serviceType] => J 
    [serviceClasses] => Array 
     (
      [0] => F 
      [1] => J 
      [2] => Y 
     ) 

    [trafficRestrictions] => Array 
     (
     ) 

    [codeshares] => Array 
     (
      [0] => stdClass Object 
       (
        [carrierFsCode] => SQ 
        [flightNumber] => 1407 
        [serviceType] => J 
        [serviceClasses] => Array 
         (
          [0] => R 
          [1] => F 
          [2] => J 
          [3] => Y 
         ) 

        [trafficRestrictions] => Array 
         (
          [0] => Q 
         ) 

        [referenceCode] => 10594616 
       ) 

     ) 

    [referenceCode] => 979-1740743-- 
) 
stdClass Object 
(
    [carrierFsCode] => SQ 
    [flightNumber] => 1407 
    [departureAirportFsCode] => LAX 
    [arrivalAirportFsCode] => SFO 
    [stops] => 0 
    [departureTerminal] => 3 
    [arrivalTerminal] => 2 
    [departureTime] => 2014-04-28T07:00:00.000 
    [arrivalTime] => 2014-04-28T08:20:00.000 
    [flightEquipmentIataCode] => 32S 
    [isCodeshare] => 1 
    [isWetlease] => 
    [serviceType] => J 
    [serviceClasses] => Array 
     (
      [0] => R 
      [1] => F 
      [2] => J 
      [3] => Y 
     ) 

    [trafficRestrictions] => Array 
     (
      [0] => Q 
     ) 

    [operator] => stdClass Object 
     (
      [carrierFsCode] => VX 
      [flightNumber] => 925 
      [serviceType] => J 
      [serviceClasses] => Array 
       (
        [0] => F 
        [1] => J 
        [2] => Y 
       ) 

      [trafficRestrictions] => Array 
       (
       ) 

     ) 

    [codeshares] => Array 
     (
     ) 

    [referenceCode] => 979-1740743--10594616 
) 

而这种阵列结构:

Array 
(
    [0] => stdClass Object 
     (
      [fs] => SQ 
      [iata] => SQ 
      [icao] => SIA 
      [name] => Singapore Airlines 
      [active] => 1 
     ) 
    [1] => stdClass Object 
     (
      [fs] => VX 
      [iata] => VX 
      [icao] => VRD 
      [name] => Virgin America 
      [active] => 1 
     ) 

基本上就是我想要做的就是拿第一阵列并在第二个阵列中找到与其匹配的IATA/FS代码并将其替换为ICAO代码。例如,对于第一个阵列,我想用VRD替换VX。我希望能够将相同的概念应用于其他航空公司/航线......不仅仅是VX

如果有帮助,我是从一个JSON回报得到这个信息:http://pastebin.com/2w0kQQ26

我看着array_replace(),而是因为我的PHP技能是几乎没有,我不知道如何继续。

如果有人能指出我正确的方向,我会很感激。

回答

1

随着array1是您的第一阵列和array2为您介绍的第二个阵列。

$comp_arr = array() 
foreach ($array2 as $arr) { 
    $comp_arr[$arr[fs]] = $arr[icao]; 
} 

foreach($array1 as $key => $arr){ 
    if(array_key_exist($arr[carrierFsCode], $comp_arr){ 
     $array1[$key][carrierFsCode] = $comp_arr[$arr[carrierFsCode]]; 
    } 
}