PHP数组_key_存在不起作用;数组不是多维的
我有一系列世界上所有的国家:PHP数组_key_存在不起作用;数组不是多维的,php,html,arrays,forms,array-key-exists,Php,Html,Arrays,Forms,Array Key Exists,我有一系列世界上所有的国家: $countries = array( "GB" => "United Kingdom", "US" => "United States", "AF" => "Afghanistan", "AL" => "Albania", "DZ" => "Algeria", "AS" => "American Samoa", "AD" => "Andorra", "AO" => "Angola",
$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
的数组存储来自该文件的结果。此数组的结构如下所示:“紧急医疗保险”=>“用户输入的值”
。每个键是它形成的HTML元素的名称,值是用户输入的值
表单上的国家/地区选择列表返回国家/地区的两个字母代码。因此,我要做的是搜索$countries
,搜索值为$in_data['country_select']
,然后返回国家的名称
echo$in_数据['country_select']代码>返回“CA”我输入的加拿大和测试国家的字母代码
echo$countries['CA']代码>返回“Canada”
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手册)与我的代码完全相同,工作正常,但我的代码甚至不会返回任何东西,它是如何工作的
由于您正在读取文件,因此可能会获得其他字符,请尝试trim():
我在读取文件时遇到了类似的问题。
解决方案是从第一行删除BOM表
function remove_utf8_bom($text) {
$bom = pack('H*','EFBBBF');
$text = preg_replace("/$bom/", '', $text);
return $text;
}
dovar_dump($in_data['country_select'])
相反,为了确保该值确实是一个2字符长的字符串,它可能有一个前导/尾随空格。dovar\u dump($countries)
,echo$countries[$in_data['country\u select']]
以及@crypticツ 如果您有,请在之前提出建议,并告诉我们他们说了什么。另外,这是一件很愚蠢的事情,但可以肯定的是,PHP手册中的代码在您的站点上运行得很好,对吗?您的示例对我来说运行得很好。。如果数组键存在于CA国家/地区,则回声国家/地区是否使用PHP4.0.7或更高版本?在这种情况下,您也可以使用isset()。这修复了它,谢谢Adam;不知怎的,在这些字母出现之前,有一个空间出现了。。从文件中读取行时。。您可能得到的是CA\n而不仅仅是CAA在查看了我自己创建文件的代码之后,似乎就是这样。
if (array_key_exists(trim($in_data['country_select']), $countries)){
echo "Country Found";
}
else { echo "failed"; }
function remove_utf8_bom($text) {
$bom = pack('H*','EFBBBF');
$text = preg_replace("/$bom/", '', $text);
return $text;
}