<?php
function specialParse(array &$data)
{
$special = array( '0','0','0','0','0','0','0','0' );
$specialKeys = array(
'Общеразвивающей направленности' => 0,
'Оздоровительной направленности' => 1,
'Компенсирующей направленности' => 2,
'Комбинированной направленности' => 3
);
$d = null;
if (isset($data['treeName']['Сведения об ОУ']['Рекомендуемая направленность группы'])) {
$d = $data['treeName']['Сведения об ОУ']['Рекомендуемая направленность группы'];
$data['treeName']['Рекомендуемая направленность группы'] = $d;
} elseif (isset($data['treeName']['Рекомендуемая направленность группы'])) {
$d = $data['treeName']['Рекомендуемая направленность группы'];
$data['treeName']['Сведения об ОУ']['Рекомендуемая направленность группы'] = $d;
}
if($d) {
if(is_array($d)) {
foreach($d as $key => $value) {
if(isset($value['value']) && $value['value'] == 'true') {
if(isset($specialKeys[$key])) {
$special[ $specialKeys[$key] ] = 1;
}
} elseif (is_array($value)) {
foreach ($value as $v) {
if(isset($v['value']) && $v['value'] == 'true') {
if(isset($specialKeys[$key])) {
$special[ $specialKeys[$key] ] = 1;
}
}
}
// Если учитывать и эту ситуацию, то тогда нет сымысла в некоторых предыдущих проверках
} elseif (isset($specialKeys[$key])) {
$special[ $specialKeys[$key] ] = 1;
}
}
}
return implode('', $special);
}
return false;
}
$t = array(
"Оздоровительной направленности" => array(),
"Компенсирующей направленности" => array()
);
$t2 = array('treeName' => array(
'Рекомендуемая направленность группы' => $t
));
var_dump($t2);die;
var_dump(specialParse($t));
preferences:
85.32 ms | 402 KiB | 5 Q