Массивы и {html_options}

player

Новичок
Массивы и {html_options}

Добрый день!

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

$resources=$db->getAll("SELECT `res_id`, `res_name` FROM `".BGRESOURCES_TABLE."`");
while ($resources){
$resources=array($resources['res_id']=>$resources['res_name']);
}
$smarty->assign('res_list', $resources);

Как видно, массив с ресурсами вывожу в смарти, чтобы потом использовать его в {html_options}
Проблема: {html_options} ожидает ассоц. массив вида
array([0]=>value,
[1]=>value,
[2]=>value)

Как можно преобразовать? чото недогоню
 

Фанат

oncle terrible
Команда форума
ну так ты ж в массив не добавляешь.
читай про массивы, учись с ними работать: [m]types.array[/m]
 

player

Новичок
да, может опыта не хватает, но с [] тоже не получалось, подскажите, мож заклинило
 

player

Новичок
Вуй, сорри, я написал что
{html_options} ожидает ассоц. массив вида
array(
[0]=>array(key=>value)
[1]=>array(key=>value)
[2]=>array(key=>value)
[3]=>array(key=>value)
)
По настоящему нужен
array([0]=>value,
[1]=>value,
[2]=>value)
прошу прощения

Если я пишу
$resources=$db->getAll("SELECT `res_id`, `res_name` FROM `".BGRESOURCES_TABLE."`");
print_r($resources);

результат этого скрипта выглядит так:

Array ( [0] => Array ( [res_id] => 1 [res_name] => gold ) [1] => Array ( [res_id] => 4 [res_name] => uran ) )

Надо сказать что изначально было так:
$resources=$db->getAll("SELECT `res_id`, `res_name` FROM `".BGRESOURCES_TABLE."`");
for ($i = 0; $i < count($resources); $i++){
$resources_list=array($resources[$i]['res_id']=>$resources['res_name']);
}
$smarty->assign('resources_list', $resources_list);

но потом выяснилось что так работать не может, если например есть индексы 1, 4 то count() отдаст значение 2, и обработан будет только первый индекс

-~{}~ 03.08.06 21:45:

Автор оригинала: Фанат
что. значит. "не получалось"?
У меня выдается бесконечный цикл
 

Фанат

oncle terrible
Команда форума
замени for на foreach

-~{}~ 04.08.06 00:04:

но за первый вопрос надо убивать, конечно
 

player

Новичок
ух ты. метод работает, да только еще одно:

этот код:
$resources=$db->getAll("SELECT `res_id`, `res_name` FROM `".BGRESOURCES_TABLE."`");
print_r($resources);
foreach ($resources as $resource){
$resources_list=array($resource['res_id']=>$resource['res_name']);
}
print_r($resources_list);

выдает:
Array ( [0] => Array ( [res_id] => 1 [res_name] => gold ) [1] => Array ( [res_id] => 4 [res_name] => uran ) )

Array ( [4] => uran )

Куда девается нулевой ресурс?
 

player

Новичок
до обработки он еще на месте
[0] => Array ( [res_id] => 1 [res_name] => gold )

а после я вижу тока четвертый... foreach же с нуля по идее начинает?
 

Фанат

oncle terrible
Команда форума
ну так ты ж в массив не добавляешь.
читай про массивы, учись с ними работать: [m]types.array[/m]
 

player

Новичок
ураа :) Спасибо, вчера меня чото глючило, седня врубился
 
Сверху