使用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
}
请帮我解决这个问题
答案 0 :(得分:1)
您可以尝试使用array_chunk在一个数组中获取与城市对应的所有索引。然后,对于该数组,手动构造新数组。
$final_array = array();
$arr = array_chunk( $old_array, 4 );
foreach( $arr as $key => $city ) {
$final_array[$key]['sell'] = $city[1]['A'];
//and so on...
}