0

PHPExelを使用してXLSファイルを解析します。次の配列構造を実行します。

Array(

    [0] => Array(
            [A] => City 1
            [B] => NULL
            [C] => NULL
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
        )

    [1] => Array(
            [A] => City 1 - Sell Department Phone
            [B] => NULL
            [C] => 123-123-123
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
          )

    [2] => Array(
            [A] => Stock 1
            [B] => Stock 1 Address
            [C] => Stock 1 Phone
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
          )

    [3] => Array(
            [A] => Stock 2
            [B] => Stock 2 Address
            [C] => Stock 2 Phone
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
          )

    // City Name 2 begins
    [4] => Array(
            [A] => City 2
            [B] => NULL
            [C] => NULL
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
        )
    [5] => Array(
            [A] => City 2 - Sell Department Phone
            [B] => NULL
            [C] => 123-123-124
            [D] => NULL
            [E] => NULL
            [F] => NULL
            [G] => NULL
          )
    // and so on...      
)

上記の構造は処理に便利ではないため、次の形式に変換する必要があります。

Array(

  [0] => Array(
    [City 1] => Array(
      [sell] => City 1 - Sell Department Phone
      [stocks] => Array(
        [Stock 1] => Array(
          [address] => Stock 1 Address
          [phone] => Stock 1 Phone
        )

        [Stock 2] => Array(
          [address] => Stock 2 Address
          [phone] => Stock 2 Phone
        )
      )
    )
  )

  [1] => Array(
    [City 2] => Array(
      [sell] => City 2 - Sell Department Phone
      [stocks] => Array(
        [Stock 1] => Array(
          [address] => Stock 1 Address
          [phone] => Stock 1 Phone
        )
        [Stock 2] => Array(
          [address] => Stock 2 Address
          [phone] => Stock 2 Phone
        )
      )
    )
  )
)

これまでの私のコード:

$output = array();

foreach ($sheetData as $key => $data) {

  // Filter out empty array items
  $data = array_filter($data);

  if (count($data) == 1 && $data['A']) {
   // Get "City" name
   $output[$key]['city'] = $data['A'];
  }

  // Stuck here
}

この件で私を助けてください

4

1 に答える 1

1

array_chunk を使用して、1 つの配列内の都市に対応するすべてのインデックスを取得できます。次に、その配列に対して、新しい配列を手動で作成します。

$final_array = array();
$arr = array_chunk( $old_array, 4 );
foreach( $arr as $key => $city ) {
    $final_array[$key]['sell'] = $city[1]['A'];
    //and so on...
}
于 2012-09-02T13:12:27.827 に答える