我不知道该怎么做。我有一个名为"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;
}
}