The function aims at finding an item in a range of arrays, and then returning its key.
Problem is that the function doesn't return anything, whereas it would echo the expected result... Here is my code:
function listArray($tb, $target){
foreach($tb as $key => $value){
if(is_array($value)){ // current value is an array to explore
$_SESSION['group'] = $key; // saving the key in case this array contains the searched item
listArray($value, $target);
}else {
if ($target == $value) { // current value is the matching item
return $_SESSION['group']; //Trying to return its key
break; // I'd like to close foreach as I don't need it anymore
}
}
}
}
By the way, an other little thing: I'm not used to recursive function, and I didn't find any other solution than using a session variable. But there might be a nicer way of doing it, as I don't use this session variable elsewhere...
I finally bypassed the problem by storing my result in a $_SESSION
variable.
So, no return
anymore...
$_SESSION['item'][$target] = $_SESSION['group'];
You need a return
before the recurring listArray
call.
Thank about it ..
return;
break;
That break
is never reached (I don't believe you can use break
to exit a function in php anyway)
The second return
returns from a recursive call. Let's say that this was not two separate functions:
function foon() {
barn();
}
function barn() {
return true;
}
foon
has no return statement.