首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php前端替换数组中的值

问Php前端替换数组中的值
EN

Stack Overflow用户
提问于 2016-12-22 16:06:07
回答 2查看 944关注 0票数 2

我试图创建一个帮助函数,它将将语言的简短名称替换为它们的全名。

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

代码语言:javascript
复制
<?php

return [
    'languages' => [
        'names' => [
            'Bulgarian' => 'bg',
            'Danish' => 'da',
            'German' => 'de',
            'English' => 'en'
            ...
        ],
    ]
];

到目前为止,我的功能如下:

代码语言:javascript
复制
public static function replaceName($string = '')
{
    $langName = Config::get('constants.languages.names');
    foreach($langName as $langKey => $langValue)
    {
        $search  = array($langValue);
        $replace = array($langKey);
    }
    return str_replace($search, $replace, $string);
}

但它仍然不起任何作用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 16:13:52

您可以将array_search用作:

代码语言:javascript
复制
array_search('de', Config::get('constants.languages.names')) // returns German

来自文档

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

票数 3
EN

Stack Overflow用户

发布于 2016-12-22 16:11:13

去罗马的一条路。

代码语言:javascript
复制
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作为内容时,则:

代码语言:javascript
复制
public static function replaceName($string = '')
{
  $langName = array_flip(Config::get('constants.languages.names'));
  return isset($langName[$string])?$langName[$string]:$string;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41287275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档