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?

ご協力ありがとう御座います。

4

3 に答える 3

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;
    }
}
于 2013-07-24T14:11:31.913 に答える
1

を使用str_replaceして、国コード (キー) である検索要素とフラグ (値) である置換値を取得します。

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

$string = str_replace($search, $replace, $string)
于 2013-07-24T14:03:51.810 に答える