该函数旨在查找一系列数组中的项目,然后返回其键。
问题是函数没有返回任何东西,而它会回应预期的结果...... 这是我的代码:
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
}
}
}
}
顺便说一下,另一件小事:我不习惯递归函数,除了使用会话变量之外我没有找到任何其他解决方案。但是可能有更好的方法,因为我不在其他地方使用这个会话变量......
答案 0 :(得分:2)
在定期return
来电之前,您需要listArray
。
感谢它..
return;
break;
永远不会达到break
(我不相信你可以使用break
来退出php中的函数)
第二个return
从递归调用返回。让我们说这不是两个独立的功能:
function foon() {
barn();
}
function barn() {
return true;
}
foon
没有退货声明。
答案 1 :(得分:0)
我最终通过将结果存储在$_SESSION
变量中来绕过问题。
所以,不再return
......
$_SESSION['item'][$target] = $_SESSION['group'];