带有数组搜索的PHP函数不起作用
我有一个使用数组搜索的函数不工作。。。这是我的密码带有数组搜索的PHP函数不起作用,php,arrays,Php,Arrays,我有一个使用数组搜索的函数不工作。。。这是我的密码 function LangFull($name){ $languageCodes = array( "abkhazian"=>"ab", "afar"=>"aa", "afrikaans"=>"af", "afrikaans"=>"af-za", "zulu"=>"zu", "zulu"=>"zu-za" ); return ucwords(array_search(strtolowe
function LangFull($name){
$languageCodes = array(
"abkhazian"=>"ab",
"afar"=>"aa",
"afrikaans"=>"af",
"afrikaans"=>"af-za",
"zulu"=>"zu",
"zulu"=>"zu-za"
);
return ucwords(array_search(strtolower($name),$languageCodes));
}
echo LangFull("zu"); /// Gives no output
echo LangFull("zu-za"); /// Gives output
与af相同的是没有输出。。。请帮助您有两个相同的数组键:
"zulu"=>"zu",
"zulu"=>"zu-za"
你需要给他们中的一个起个别的名字
因为它们是相同的,所以尝试访问其中一个是徒劳的,因为PHP不知道您请求的是哪一个
或者,如果试图为给定的键存储多个数据值,则可以将键的值设置为数组,以便根据需要存储更多数据
e、 g
array (
"afrikaans"=> array(
"af",
"af-za",
),
"zulu"=> array(
"zu",
"zu-za",
)
);
编辑。对于您询问的有关交换键和值的问题:
你可以,鬼已经告诉你了。
然而,保留键的原样(如我上面的数组示例)允许您将所有相关数据整理到一个索引中,并且可以轻松访问它 交换值和键可能会使您更难获得所需的数据,因为您的键现在就是“数据”。因此,要从数组中获取数据,您需要知道数据(因为它现在是键),并且您实际上要获取引用(您的键是什么)
这有点奇怪。它可以工作,但不是很理想 如果可以交换(值到键,键到值),并且不会发生键冲突,那么您也可以这样做:
function LangFull($name){
$languageCodes = array(
"ab" => "abkhazian",
"aa" => "afar",
"af" => "afrikaans",
"af-za" => "afrikaans",
"zu" => "zulu",
"zu-za" => "zulu",
);
return isset($languageCodes[$name]) ? ucwords(strtolower($languageCodes[$name])) : 'Not found';
}
echo LangFull("zu"); /// Gives output
echo LangFull("zu-za"); /// Gives output
echo LangFull("yahoo!");
“zulu”=>“zu”、“zulu”=>“ZUZA”
数组键必须是唯一的,在函数内部打印($languageCodes)
,您将知道回复的上限是多少,回复的上限是多少