0

最初の3つのインデックスグループを保持し、残りをマルチアレイから(各グループで)削除する必要があるマルチアレイがあります。

ここでマルチアレイを参照してください: https://gist.github.com/no1uknow/6887497

したがって、この例では、保持するマルチ配列が必要です: 最初の 3 つの Heavy、Lite、Intermediate など (これらは source_type_cd によって識別されます)

最初の 3 つが保持された後の配列の Lite 部分の例:

 0 => 
    array (size=9)
      'validated_ata' => string '25' (length=2)
      'source_type_cd' => string 'Lite' (length=4)
      'validated_subata' => string '22' (length=2)
      'action_cd' => string '3' (length=1)
      'object_cd' => string '5' (length=1)
      'malfunction_cd' => string '29' (length=2)
      'corrective_action_txt' => string 'Repair-Passenger Seat-Loose / Displaced' (length=39)
      'rec_count' => string '00050' (length=5)
      'group_id' => int 48
  1 => 
    array (size=9)
      'validated_ata' => string '25' (length=2)
      'source_type_cd' => string 'Lite' (length=4)
      'validated_subata' => string '22' (length=2)
      'action_cd' => string '3' (length=1)
      'object_cd' => string '5' (length=1)
      'malfunction_cd' => string '1' (length=1)
      'corrective_action_txt' => string 'Repair-Passenger Seat-Inoperative' (length=33)
      'rec_count' => string '00047' (length=5)
      'group_id' => int 44
  2 => 
    array (size=9)
      'validated_ata' => string '25' (length=2)
      'source_type_cd' => string 'Lite' (length=4)
      'validated_subata' => string '22' (length=2)
      'action_cd' => string '3' (length=1)
      'object_cd' => string '5' (length=1)
      'malfunction_cd' => string '31' (length=2)
      'corrective_action_txt' => string 'Repair-Passenger Seat-Worn / Chaffed / Frayed' (length=45)
      'rec_count' => string '00042' (length=5)
      'group_id' => int 50
4

2 に答える 2

0

配列をループして、それらの値のいずれかがあるかどうかを確認し、新しい配列に配置するだけです。

例(マルチアレイはどこ$arrですか):

// My silly solution for knowing what to look for
// When one is found, it will be removed from the array.
$find = array('Lite','Lite','Lite','Intermediate','Intermediate','Intermediate','Heavy','Heavy','Heavy');

// New array where your the values you want will be placed in
$new_arr = array();

foreach($arr as $v) {
    // No need to keep looking if there's no more to find.
    if(empty($find))
        break;

    // Look in $find array if current "source_type_cd" is still sought-after
    $key = array_search($v['source_type_cd'], $find);
    if($key !== false) {
        $new_arr[] = $v;  // Add to new array
        unset($find[$key]); // Remove from "find" array
    }
}
于 2013-10-08T16:55:31.530 に答える