我在世界上所有國家的數組作爲這樣的:PHP array_key_exists不起作用;數組不多維
$countries = array(
"GB" => "United Kingdom",
"US" => "United States",
"AF" => "Afghanistan",
"AL" => "Albania",
"DZ" => "Algeria",
"AS" => "American Samoa",
"AD" => "Andorra",
"AO" => "Angola",
"AI" => "Anguilla",
"AQ" => "Antarctica",
"AG" => "Antigua And Barbuda",
"AR" => "Argentina",
"AM" => "Armenia",
"AW" => "Aruba",
"AU" => "Australia",
"AT" => "Austria",
"AZ" => "Azerbaijan",
"BS" => "Bahamas",
"BH" => "Bahrain",
"BD" => "Bangladesh",
"BB" => "Barbados",
"BY" => "Belarus",
"BE" => "Belgium",
"BZ" => "Belize",
"BJ" => "Benin",
"BM" => "Bermuda",
"BT" => "Bhutan",
"BO" => "Bolivia",
"BA" => "Bosnia And Herzegowina",
"BW" => "Botswana",
"BV" => "Bouvet Island",);
等了所有國家;我百分百肯定每個國家都正確列出。
我有一個應用程序窗體,它將結果存儲在服務器上存儲的文件中。目前,該應用程序的評論頁面是基本的文本版本,現在我正在將其納入模擬表單,以便讓我的客戶擁有更具視覺吸引力的審閱應用程序的方法。
所以數組名爲$in_data
存儲了來自該文件的結果。該陣列的結構如下"emergency_medical_insurance" => "value_user_entered"
。每個關鍵是它來到形式的HTML元素的名稱和值是把什麼用戶。在表單上
國家選擇列表返回該國的兩個字母的代碼。所以我想要做的是搜索$countries
與值$in_data['country_select']
然後返回國家的名稱。
echo $in_data['country_select'];
回報「CA」加拿大字母代碼,我已經進入了試驗的國家。
echo $countries['CA'];
回報「加拿大
if (array_key_exists($in_data['country_select'], $countries)){
echo "Country Found";
}
else { echo "failed"; }
回報什麼。
if (array_key_exists('CA', $countries)){
echo "Country Found";
}
else { echo "failed"; }
也不返回任何內容。當我什麼都不說,我什麼都不是,不是空的,不是真的,不是假的;只是不運行。
我的問題很簡單;下面的代碼如何(從官方的PHP手冊中獲得)與我的代碼完全相同,但是我的代碼甚至不會返回什麼?
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
做'的var_dump($ IN_DATA [「country_select」]);'代替你可以確保的價值確實是一個2字符長度的字符串,它可能有前/後空間。 –
'var_dump($ countries)','echo $ countries [$ in_data ['country_select']]'以及@crypticツ建議在'if'之前,並告訴我們他們說什麼。此外,虛擬的東西,但只是可以肯定的是,來自PHP手冊的代碼在你的網站中工作得很好,對吧? –
你的例子對我來說工作正常..如果數組密鑰存在CA國家,回聲國家找到 –