我有一个多维数组要搜索:
> Array (
> [91] => Array
> (
> [FoSW] => 117
> [DfLR] => 107
> [FoA] => 0
> [SoG] => 116
> [RST] => 38
> [SSW] => 0
> [total] => 458
> )
>
> [92] => Array
> (
> [FoSW] => 118
> [DfLR] => 0
> [FoA] => 58
> [SoG] => 0
> [RST] => 0
> [SSW] => 40
> [total] => 463
> ) //etc....
我正在使用这个函数来搜索值并返回它的键。如果未找到该值,则将值减一并再次搜索。
$search 是 md 数组
例如,$type 将是 SoG(md 数组第二级中的键)
例如,$score 的值为 0f 24
注意:在整个数组中没有值为 24 的 SoG
function find_percentile($search, $type, $score){
foreach($search as $key=>$val){
if ($val[$type]== $score){
return $key;
$found = true;
}
else {
$found = false;
}
}
if ($found == false){
$new_score = $score - 1;
find_percentile($search, $type, $new_score);
}
}
如果我从 foreach 循环中回显 $key ,它最终会回显出递归找到的键。
但是当我用该函数构建一个单独的数组或回显该函数时,它没有得到递归找到的键。
$perc_array[$key] = find_percentile($percentiles, $key, $val);
这只会附加匹配的值。递归找到的值将不在此数组中。
echo find_percentile($percentiles, $key, $val);
不会回显递归找到的值。