<?php
namespace App\Imports;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
class ImportRealisasi implements ToCollection
{
/**
* @param Collection $collection
*/
public function collection(Collection $rows)
{
$start = [];
$number = 0;
foreach ($rows as $key => $value) {
if ($value[0] == 'type' and $value[1] == 'start') {
array_push($start,$number++);
}
}
$cols= [];
$devider = [];
$number = 0;
foreach ($rows as $key => $values) {
if ($values[0] == 'type') {
// $devider[$values[1]] = [];
$push[] = [];
$push[] = [
$values[0] => $values[1],
];
}else{
$push[] = [
$values[0] => $values[1],
];
}
}
$cols = [
$push
];
foreach ($cols as $key => $value) {
$num = 0;
$index = 0;
$active_keys = [];
$items[] = [];
$sub5_index = -1;
$tes[] = [];
// $subitem_index = -1;
foreach ($value as $keys => $values) {
if (!empty($values)) {
$val = collect($values);
// $index++;
if ($val->keys()->first() == 'type') {
array_push($active_keys,$val->values()->first());
}
if ($val->keys()->first() == 'type' and $val->values()->first() == 'item'){
$index++;
}elseif($val->keys()->first() == 'type' and $val->values()->first() == 'opd'){
$index = 0;
$sub5_index = -1;
}elseif($val->keys()->first() == 'type' and $val->values()->first() == 'sub5'){
$sub5_index++;
}
if ($val->keys()->first() == 'type') {
$kunci = $val->values()->first();
if ($val->keys()->first() == 'type' and $val->values()->first() == 'start') {
$num++;
}
}else{
if($kunci != 'item'){
$devider[$num-1][$kunci][$index][$val->keys()->first()] = $val->values()->first();
}else{
$devider[$num-1][$kunci][$index][$val->keys()->first()] = $val->values()->first();
// $items[$num-1][$index-1][$sub5_index][$val->keys()->first()] = $val->values()->first();
$devider[$num-1]['sub5'][$sub5_index]['items'][$index][$val->keys()->first()] = $val->values()->first();
}
}
}
}
// dd($tes);
dd($devider);
dd($active_keys);
}
$wrap= [];
foreach ($devider as $key => $value) {
$wrap[] = [
'opd'=>$value['opd'][0],
'program'=>$value['program'][0],
'kegiatan'=>$value['kegiatan'][0],
'sub_kegiatan'=>$value['sub_kegiatan'][0],
'kpa'=>$value['kpa'][0],
'ppt'=>$value['ppt'][0],
'sumber_dana'=>$value['sumber_dana'][0],
'sub'=>collect($devider[$key])->map(function($item,$key){
$arr = ['sub1','sub2','sub3','sub4','sub5'];
$all = [];
if (in_array($key,$arr)){
if (!is_null($key)) {
return $item;
}
}
})->filter(),
];
}
dd($wrap);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]