Массив выборки таблиц Zend Framework DB

Можно ли получить массив из db, взяв один столбец как ключ массива, а другой столбец как значение массива?

Мой текущий код:

$table = new Zend_Db_Table('translations');

$where = $table->getAdapter()->quoteInto('lang = ?', $locale);      

$result = $table->fetchAll($where)->toArray();

Структура таблицы:

id     key     lang     title
1      key1    en       Some english text
2      key2    de       Some german text

Итак, после получения массива я хотел бы получить массив, содержащий значение ключа в качестве ключа массива и заголовок в качестве значения ключа массива.

Ваша помощь будет оценена по достоинству.


person Bounce    schedule 30.11.2012    source источник
comment
Не уникальный. Один и тот же ключ может быть на разных языках.   -  person Bounce    schedule 30.11.2012
comment
Небольшая заметка. Похожая, но более общая функция - ›fetchAssoc ().   -  person sumid    schedule 23.05.2013


Ответы (2)


Если нужны пары, лучше так сделать

$table = new Zend_Db_Table ('translations');
$db = $table->getAdapter();
$select = $table->select ()
    ->columns(array('key','title'))
    ->where ('lang = ?', $locale);
$result = $db->fetchPairs($select);
person Vadyus    schedule 30.11.2012

Я не понимаю, что вы имеете в виду, но давайте попробуем следующее:

    $table = new Zend_Db_Table ('translations');
    $query = $table->select ()
        ->where ('lang = ?', $locale);

    $results = $table->getAdapter ()
        ->fetchAll ($query, array (), Zend_Db::FETCH_GROUP);

    Zend_Debug::dump ($results);
person akond    schedule 30.11.2012