Преобразовать массив подходит для раскрывающегося списка CI - PullRequest
0 голосов
/ 05 июля 2011

Я использую метод CodeIgniter (db-> result_array ()), который возвращает мне следующий массив:

 Array
 (
[0] => Array
    (
        [id] => 5
        [lang_name] => ASM
    )

[1] => Array
    (
        [id] => 16
        [lang_name] => Bash
    )

[2] => Array
    (
        [id] => 17
        [lang_name] => Batch
    )

[3] => Array
    (
        [id] => 3
        [lang_name] => C
    )

[4] => Array
    (
        [id] => 11
        [lang_name] => C#
    )

[5] => Array
    (
        [id] => 4
        [lang_name] => C++
    )
 )

И мне нужен массив с этим форматом, чтобы передать его функции CI form_dropdown ():

 $atrLangDropDown = array(
    '1' => 'CPP',
    '2' => 'PHP',
    '3' => 'ASM'
);

Я сделал что-то вроде этого:

public function getAllLangsSelect() {
    $this->db->select('*')->from($this->tableName)->order_by($this->tableName.'.lang_name');
    $q = $this->db->get();
    $data = array();
    array_push($data, '- Select Language -');

    foreach ($q->result_array() as $row) {  
        array_push($data, $row['lang_name']);
    }

    return $data;

}

Но он должен сохранять исходный идентификатор, хранящийся в базе данных, поэтому он не работает должным образом.

Любая подсказка или помощь будут приветствоваться. Это первый раз, когда я делаю такие операции.

1 Ответ

1 голос
/ 05 июля 2011

Попробуйте это:

public function getAllLangsSelect()
{
    $query = $this->db
        ->order_by('lang_name')
        ->get($this->tableName);

    $options[''] = '- Select Language -';

    foreach ($query->result() as $row)
    {  
        $options[$row->id] = $row->lang_name;
    }

    return $options;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...