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

时间:2013-07-24 14:01:08

标签: php mysql codeigniter

我无法理解如何做到这一点。 我有一个名为'公司'的mysql表。它有一个名为' language'的列。此语言列包含国家/地区缩写(en,de,es ...)。

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

我不想在db中保存标志但我想更改db-country缩写。进入代码内的标志。下面,我将db中的国家/地区缩写存储在缩写中。并尝试以某种方式将它们与数组键匹配。

模型(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?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

使用str_replace,获取作为国家/地区代码(键)的搜索元素以及作为标志(值)的替换值

$replace = array_values($flags);
$search = array_keys($flags);

$string = str_replace($search, $replace, $string)

答案 1 :(得分:1)

而不是数组,你可以做类似的事情。

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

答案 2 :(得分:1)

$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;
    }
}