<?php
namespace App\Imports;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
class TestImport implements ToCollection
{
/**
* @param Collection $collection
*/
public function collection(Collection $row)
{
$data = [];
$sub_data[] = [];
$key_val = collect();
foreach ($row as $key => $value) {
$val = collect($value);
$key_val->push([$value[0]=>$value[1]]);
}
$number = -1;
$item = -1;
$index_sub = -1;
$sub_item = -1;
$active_keys = null;
foreach ($key_val as $key => $value) {
$value = collect($value);
if ($value->keys()->first() == 'type' and $value->values()->first() == 'start') {
$semi_var = [];
$index_sub = -1;
$number++;
}elseif($value->keys()->first() == 'type' and $value->values()->first() != 'start'){
$active_keys = $value->values()->first();
if($value->keys()->first() == 'type' and $value->values()->first() == 'sub5'){
$index_sub++;
}
}else{
if ($index_sub > -1) {
if ($active_keys == 'sub5') {
$semi_var[$active_keys][$index_sub][$value->keys()->first()] = $value->values()->first();
$item = -1;
$sub_item = -1;
}
if ($active_keys == 'item') {
if ($value->keys()->first() == 'uraian') {
$sub_item++;
}
$semi_var['sub5'][$index_sub]['item'][$sub_item][$value->keys()->first()] = $value->values()->first();
}
}else{
$semi_var[$active_keys][$value->keys()->first()] = $value->values()->first();
}
}
$arr = ['opd','program','kegiatan','kpa','ppt','sub_kegiatan'];
if (in_array($active_keys,$arr)) {
}else{
$data[$number] = $semi_var;
}
}
dd($data);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]