當返回值我有一個多維數組搜索:遞歸函數 - 幫助調用函數
> 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....
我使用這個功能,搜索值,並返回其關鍵。如果未找到該值,則將值減1並再次搜索。
$搜索是MD數組
$型將是太陽級例如
$得分將是例如值0F 24(在MD陣列的所述第二電平的鍵)
注:整個陣列的位置,有24
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循環最終將回聲出$關鍵的遞歸找到鑰匙。
但是當我用該函數構建一個單獨的數組或回顯該函數時,它不會獲得遞歸找到的鍵。
$perc_array[$key] = find_percentile($percentiles, $key, $val);
這將只附加匹配的值。遞歸發現的值不會在這個數組中。
echo find_percentile($percentiles, $key, $val);
不會回顯遞歸發現的值。
你爲什麼不只是使用array_search()? – XaxD
如果你使用array_search,FoA和SoG的值可能是24 –
,你可以'array_search($ score,$ search)',你不需要做任何遞歸......你可以遍歷每個第二維.. – XaxD