【发布时间】:2015-03-20 23:39:24
【问题描述】:
我遇到了麻烦。我试图让它工作很长时间,所以我决定在这里寻求帮助。
我有一个里面有一些数组:
$myarray = [
['string1','string2'],
['string3','string4'],
['string5',['string6','string7','string99']],
['string8','string9']
];
我正在制作一个搜索 s 的函数
function searchArray($array,$chave,$id) {
foreach ($array as $key) {
if (is_array($key)) {
if (($key[0] == $chave) && ($key[1] == $id)) {
break;
}
else {
searchArray($key,$chave,$id);
}
}
}
return $key;
}
$result = searchArray($myarray,'string6','string7');
print_r($result);
它应该打印 ['string6','string7','string99']] 但它打印数组的最后一个“键”:['string8','string9']
休息不工作。休息后,它继续检查下一个数组。
【问题讨论】:
-
那为什么要打印
['string6','string7','string99']呢?您搜索 string1 和 string2 作为索引 0 和 1。否则您会在不获取返回值的情况下进行毫无意义的递归?我不明白你的逻辑。你想达到什么目的?即打印假定值的原因是什么? -
错了。我编辑了。我真的在寻找 string6 和 string7。对不起。