<?php require_once __DIR__ . '../infra/infra.php'; $layer = array(); $layer['divs'] = array(); $data = infra_load('*counters.json', 'fj'); if ($data) { $i = 0; infra_foro($data, function ($val, $key) use(&$layer, &$i) { if (!$val || !$val['id']) { return; } $i++; $layer['divs']['counter' . $i] = array('external' => infra_load('*metrika/' . $key . '.layer.js', 'fj'), 'data' => true, 'config' => $val); }); } return infra_echo($layer);
function xls_processGroupFilter(&$data) { $all = array(); xls_runGroups($data, function (&$gr) use(&$all) { $title = infra_strtolower($gr['title']); //echo $title.'<br>'; if (!isset($all[$title])) { $all[$title] = array('orig' => &$gr, 'list' => array()); } else { //Ну вот и нашли повторение $all[$title]['list'][] =& $gr; //xls_merge($all[$title],$gr); //у некой прошлой группы появляются новые childs.. но мы всё ещё бежим по какому-то его childs и новые добавленные будут проигнорированны //return new infra_Fix('del'); } }); infra_foro($all, function (&$des) { infra_forr($des['list'], function &(&$gr) use($des) { xls_merge($des['orig'], $gr); infra_forr($gr['parent']['childs'], function &(&$g) use(&$gr) { if (infra_isEqual($g, $gr)) { return new \infra_Fix('del', true); } $r = null; return $r; }); $r = null; return $r; }); $r = null; return $r; }); /*//$cat=$data['childs'][0]; $cat=$data; unset($cat['parent']); infra_forr($cat['childs'],function(&$g){ //if(!is_string($g['parent'])) $g['parent']=&$g['parent']['title']; //unset($g['parent']); $g['childs']=sizeof($g['childs']); $g['data']=sizeof($g['data']); }); echo '<pre>'; print_r($cat); exit; /* xls_runGroups($data,function(&$gr,$i,&$group){//Удаляем пустые группы if(!$group) return;//Кроме верхней группы if(!sizeof($gr['childs'])&&!sizeof($gr['data'])){ array_splice($group,$i,1); } },array(),true); */ }