我遇到麻烦了。我试着让它工作了很长一段时间,所以我决定在这里寻求帮助。
我有一个里面有一些阵列:
$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);
它本应打印["第6行"、"第7行"answers"第99行"]但它打印出了数组的最后一个"键":["ring8","ring9"]
休息不起作用。中断后,它继续检查下一个数组。
通过这些修改,它返回预期值:
<?php
$myarray = [
['string1','string2'],
['string3','string4'],
['string5',['string6','string7','string99']],
['string8','string9']
];
function searchArray($array,$chave,$id) {
foreach ($array as $key) {
if (is_array($key)) {
if (($key[0] == $chave) && ($key[1] == $id)) {
return $key;
} else {
$res = searchArray($key,$chave,$id);
if($res !== false) {
return $res;
}
}
}
}
return false;
}
$result = searchArray($myarray,'string6','string7');
print_r($result);
失败是为了夺取成功。这毫无意义。
你需要回报成功的价值。如果没有成功,返回false。想象一下,搜索到的值可能找不到,所以它应该返回false。