2012-09-02 7 views
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 
} 

이 문제로 도와주세요

답변

1

array_chunk를 사용하여 모든 색인을 가져올 수 있습니다 하나의 배열에있는 도시에 해당하는 es. 그런 다음 해당 배열에 대해 수동으로 새 배열을 만듭니다.

$final_array = array(); 
$arr = array_chunk($old_array, 4); 
foreach($arr as $key => $city) { 
    $final_array[$key]['sell'] = $city[1]['A']; 
    //and so on... 
} 
관련 문제