Php foreach替换数组中的值

Php foreach替换数组中的值,php,arrays,laravel,loops,replace,Php,Arrays,Laravel,Loops,Replace,我试图创建一个助手函数,将语言的短名称替换为全名 我有一个常量文件,看起来像这样(使用laravel,这就是常量看起来像这样的原因): 但它仍然不起作用,没有任何想法?去罗马的一条路 public static function replaceName($string = '') { $langName = Config::get('constants.languages.names'); foreach($langName as $langKey => $langValue)

我试图创建一个助手函数,将语言的短名称替换为全名

我有一个常量文件,看起来像这样(使用laravel,这就是常量看起来像这样的原因):

但它仍然不起作用,没有任何想法?

去罗马的一条路

public static function replaceName($string = '')
{
  $langName = Config::get('constants.languages.names');
  foreach($langName as $langKey => $langValue)
  {
    $search[]  = " $langValue ";
    $replace[] = " $langKey ";
  }
  return str_replace($search, $replace, $string);
}
它只在单词前后用空格替换完整单词

我们不想
Ben
变成
BEnglish
!)如果不需要,请删除空格

##############################################

$string
只有
de
作为内容时,则:

public static function replaceName($string = '')
{
  $langName = array_flip(Config::get('constants.languages.names'));
  return isset($langName[$string])?$langName[$string]:$string;
}
您可以将其用作:

在数组中搜索给定的值,如果成功,则返回第一个对应的键


你想用“德”来代替“德”吗?然后执行
返回str_replace(数组_键($langName),$langName,$string)
else
returnstr\u replace($langName,array\u key($langName),$string)不,我想用Germand替换de,你现在知道有多少个单词包含了de
部分吗?在我的情况下,只能有一个,不用担心:)
public static function replaceName($string = '')
{
  $langName = Config::get('constants.languages.names');
  foreach($langName as $langKey => $langValue)
  {
    $search[]  = " $langValue ";
    $replace[] = " $langKey ";
  }
  return str_replace($search, $replace, $string);
}
public static function replaceName($string = '')
{
  $langName = array_flip(Config::get('constants.languages.names'));
  return isset($langName[$string])?$langName[$string]:$string;
}
array_search('de', Config::get('constants.languages.names')) // returns German