Goal: O functie ce cauta intr-un array multidimensional (adancimea poate varia evident) o cheie sau o valoare. Cu alte cuvinte daca am gasit o cheie sau o valoare cautata functia sa-mi intoarca un TRUE;
Iata si un mic cod pe care am lucrat:
[php]
<?
$site_modules = array();
$site_modules['planning']['manage_planning'][0] = 'incoming_calls';
$site_modules['planning']['manage_planning'][1] = 'status_service';
$site_modules['planning']['customer_information'] = 'some_info';
$site_modules['second_item'][0] = 'incoming_calls2';
echo '<pre>';
print_r($site_modules);
echo '<hr><hr>';
function section_exists($site_modules, $section) {
foreach($site_modules as $main_module => $module) {
if($main_module == $section or $module == $section) {
return true;
}
elseif(is_array($module)) {
section_exists($module, $section);
}
}
}
if(section_exists($site_modules, 'customer_information')) {
echo '<br>am gasit string-ul';
}
else {
echo '!!NU am gasit string-ul';
}
?>
[/php]
Problema: functia gaseste valoarea cautata (string-ul) dar cu return true nu iese decat dintr-o iteratie, neoprind executia functiei.
Cum sa fac sa opreasca executia functiei ?
Multumiri anticipate
cautare in array multidimensional
Moderatori: Zamolxe, Moderatori
da. acum merge cum trebuie. mersi ExcalIbvr. Acum functia arata cam asa:
[php]
function section_exists($site_modules, $section) {
global $found;
foreach($site_modules as $main_module => $module) {
if($main_module === $section or $module === $section) {
$found = true;
continue;
}
elseif(is_array($module)) {
section_exists($module, $section);
}
}
if($found === true) {
return true;
}
}
[/php]
[php]
function section_exists($site_modules, $section) {
global $found;
foreach($site_modules as $main_module => $module) {
if($main_module === $section or $module === $section) {
$found = true;
continue;
}
elseif(is_array($module)) {
section_exists($module, $section);
}
}
if($found === true) {
return true;
}
}
[/php]
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 22 vizitatori
