Вопрос, связанный с foreach и формирование массива в нём

Solomon Kane

Постоялец
Регистрация
26 Авг 2009
Сообщения
144
Реакции
9
Есть такой код:
PHP:
foreach ($menu_titles as $key => $title) 
     {
// тут идут разные ифы, которые, в общем-то, конечному результату отношения не имеют, единственное в них используется $key
$menu_data[] = array($table.'_menu' => $title.$this->get_links_model->get_links($table));
     }
В итоге он выдаёт массив вида:
PHP:
Array
(
    [0] => Array
        (
            [pages_menu] => Меню страниц
            // остальные элементы
    )

Вопрос состоит в том, что сделать, чтобы в итоге получался примерно такой массив:

array([pages_menu] => 'Меню страниц'), то есть чтобы на выходе получался ассоциативный массив, а не многомерный с числовыми индексами. Что надо поменять в этой строке?

PHP:
$menu_data[] = array($table.'_menu' => $title.$this->get_links_model->get_links($table));

Уже все мозги сломал :(. Если убрать [], то в массив попадёт только последний результат цикла (а их там три). Зато массив будет такой, как надо. Если же оставить [], получается массив с числовыми индексами, а мне нужен именно ассоциативный, так как собираюсь применять потом экстракт. Понятно, что по экстракту можно пройтись фором обычным потом, но это нет. Уверен, что можно всё сделать в самом фориче.

Спасибо за помощь!
 
PHP:
//а если это
$menu_data[] = array($table.'_menu' => $title.$this->get_links_model->get_links($table));

//заменить на это 
$menu_data[$table.'_menu'] = $title.$this->get_links_model->get_links($table));

но но там у вас в цикле че-то как-то формируется ...
возможно конечный результат будет неверный .... если переменная $table на каких-то итерациях цикла дублируется

если он действительно будет неверный то выложите полный массив которые сейчас выходит ( со всеми индексами и ключами )
ну и тот массив который необходимо получить ...
 
Попробуй так:
PHP:
$i=0;
foreach ($menu_titles as $key => $title) 
     {
// тут идут разные ифы, которые, в общем-то, конечному результату отношения не имеют, единственное в них используется $key
$menu_data[$i] = array($table.'_menu' => $title.$this->get_links_model->get_links($table));
$i++;
     }
 
Дино, что за ересь написал? Дополнительный счетчик и что он меняет?
Chang уже дал рабочий пример.
 
Назад
Сверху