【发布时间】:2026-01-15 16:05:01
【问题描述】:
$lang = array(
'thank you'=>'You are welcome',
'thanks'=>'You are welcome',
'thank ya'=>'You are welcome'
);
如您所见,为相同的值编写多个键会很烦人,我有什么办法吗?
$lang['thanks']=>$lang['thank ya']=>$lang['thank you']
只是想在这里节省一些时间,以免重写一百次
PHP类函数:
function fetch_key($key, $l,$bool){
$dynamic = new l18n;
if($bool == true or is_null($bool)){
return addslashes( $dynamic->convert($key,$l) );
}else{
return $dynamic->convert($key,$l);
}
}
EX
$lang = array(
'thank you'=>'You are welcome',
'thanks'=>'You are welcome',
'thank ya'=>'You are welcome',
'hello'=>'hello',
'goodbye'=>'goodbye'
);
所以我需要将其添加到数组中,而不是用相同的值填充我的键值,而实际上它们并不完全相同。我应该在一开始就说明这一点
【问题讨论】:
-
我会翻转数组,使
'You are welcome'指向所有可能的等价物,而不是所有等价物都指向相同的值。这也将使用更少的内存。 -
嗯,我有一个很长的数组,我使用的类如:查看我的新更新。我们使用 JS 将字符串作为算法进行搜索,然后使用默认语言解析出响应。所以让你受欢迎是行不通的。
-
我在您的修改中看不到任何妨碍更清洁结构的内容。在某些时候,您可能正在使用
isset($lang[$word]),并且可以轻松地循环并使用array_search函数。 -
嗯,我是 php 的新手,所以我不确定 array_search 或除数组之外的任何数组函数 :) 我知道 isset 总是设置的,因为我在发布之前自己编写基础设施l18n 文件。您必须向我展示您在说什么,因为我是这一切的新手。我的 js 所做的是,如果出现
hello这个词,它会搜索 js:lang.hello并使用该响应我的 php 标头将 php 变成一个 js 文件 btw -
如果您不熟悉任何语言,那么您总是希望查看文档,因为本机函数通常比其他实现更快。对于 PHP 数组函数,文档位于 us3.php.net/manual/en/ref.array.php