2013-07-24 42 views
0

我無法讓我的頭瞭解如何做到這一點。 我有一個名爲'公司'的名爲'語言'的列的MySQL表。此語言欄包含國家縮寫(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? 

謝謝你的幫助。

回答

1

比數組,你可以這樣做相反的一個搜索元素..

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

使用str_replace,得到它們是國家代碼(鍵),哪些標誌(值)的替換值

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

$string = str_replace($search, $replace, $string) 
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; 
    } 
}