我使用下面的函數通過數組遞歸搜索:PHP遞歸陣列搜索
function search2($array, $key){
if(array_key_exists($key, $array)){
print("<br> ----------------- FOUND <u>{$key}</u> with value: {$array[$key]}");
return array($key => $array[$key]);
}else if(!array_key_exists($key, $array)){
foreach ($array as $index => $subarray){
if(is_array($subarray)){
print("<br> ************* <u>{$index}</u> is an ARRAY");
print("<br> ************* RE-SEACHING <u>{$index}</u> FOR : <u>{$key}</u>");
search2($subarray, $key);
}
}
}
}
所以,用下面的數組結構:
Array
(
[personal] => Array
(
[title] =>
[forename] =>
[surname] =>
[post_code] =>
[date_of_birth] => Array
(
[month] =>
[day] =>
[year] =>
)
[email_address] => [email protected]
[confirm_email_address] =>
[mobile_telephone] =>
[home_telephone] =>
[work_telephone] =>
[are_you_entering_fundraising_in_a_team] => Array
(
[yes] => 0
)
[how_many_places_would_you_like] =>
[team_name] =>
[names_of_team_members] =>
[how_did_you_hear_about_this_event] =>
[please_tell_us_] =>
[would_you_be_happy_for_publicity] =>
[is_this_the_first_time_you_have_taken_part_in_or_attended_this_event] => Array
(
[yes] => 0
)
[do_you_have_a_special_reason_for_taking_part_in_or_attending_this_event] =>
[what_are_your_plans_for_raising_the_minimum_sponsorship_amount___please_be_as_detailed_as_possible] =>
[number_of_tickets_required] => 1
)
)
我的功能將保持自稱,直到它找到我正在尋找的索引。如果我正在搜索email_address,if語句的第一部分應返回該索引的值(如果該數組鍵存在),否則它會在代碼的第二部分進入遞歸模式。
麻煩的是代碼似乎工作,因爲我得到了我的「發現」打印出聲明,如下:
print("<br> ----------------- FOUND <u>{$key}</u> with value: {$array[$key]}");
然而
,我希望return語句做什麼它應該,但我得到在我的函數調用點沒有輸出。
請幫忙!
非常感謝。我知道我忽略了一些重要的東西 – sisko