检索数据库值,然后用数据库外的图像替换值


retrieve database values and then replace values with images outside of database

我不知道该怎么做。我有一个名为"companies"的mysql表,其中有一列名为"language"。此语言列包含国家缩写(en、de、es…)。

然后我在media/images/flags(en.png,de.png,es.png…)中保存了标志。

我不想保存数据库中的标志,但我想更改数据库国家缩写。转换为代码中的标志。下面,我将来自数据库的国家缩写存储在缩写中。并尝试以某种方式将它们与数组键相匹配。

型号(platform_Model):

    public function get_country(){
        $query = $this->db->query("SELECT language FROM companies");
        return $query;
    }

控制器:

    public function set_flag(){
    $this->load->model('platform_model');
    $abbrevs = $this->platform_model->get_country();
    $flags = array(
        'de' => base_url('media/images/flags/de.png'),
        'en' => base_url('media/images/flags/en.png'),
        'it' => base_url('media/images/flags/it.png'),
        'fr' => base_url('media/images/flags/fr.png'),
        'es' => base_url('media/images/flags/fr.png'),
        'pt' => base_url('media/images/flags/pt.png'),
        'ru' => base_url('media/images/flags/ru.png'),
        'ch' => base_url('media/images/flags/ch.png'),
        'ja' => base_url('media/images/flags/ja.png')
    );
    //how can I compare/replace them from here?

谢谢你的帮助。

您可以执行以下操作,而不是数组。。

<img src="media/images/flags/<? echo $county; ?>.png" />

使用str_replace,获取作为国家代码(密钥)的搜索元素和作为标志(值)的替换值

$replace = array_values($flags);
$search = array_keys($flags);
$string = str_replace($search, $replace, $string)
$arr = func_get_args();
$num = func_num_args();
$keys = array();
$i = 0;
for($i=0;$i<$num;++$i){
    $keys = array_merge($keys, array_keys($arr[$i]));
}
$keys = array_unique($keys);
$merged = array();
foreach($keys as $key){
    $merged[$key] = array();
    for($i=0;$i<$num;++$i){
        $merged[$key][] = isset($arr[$i][$key])?$arr[$i][$key]:null;
    }
}