Обход массива

Brezee

Новичок
Обход массива

Как обойти с помощью section в смарти массив вида:

{$list_field} Array (2)
54 => Array (3)
form_title => Описание
form_type => textarea
form_value => empty
53 => Array (3)
form_title => Ценна
form_type => text
form_value => empty

т.е. он заполнялся в цикле следующим образом
while (){
$output_array[$row['id']]['form_title'] = "" ;
$output_array[$row['id']]['form_title1'] = "" ;
$output_array[$row['id']]['form_title2'] = "" ;
}
 

SergeR

Новичок
А обязательно с помощью section? :) Здесь foreach напрашивается...
 

Brezee

Новичок
да обязательно! foreach не имеет предыдущего и следующего индексов!
Пришлось переделать исходный массив.
 

Demiurg

Guest
Brezee
а что ты делал для того, что бы получалось ?
В мануале вроде все расписано с примерами.
 

Brezee

Новичок
Автор оригинала: Demiurg
Brezee
а что ты делал для того, что бы получалось ?
В мануале вроде все расписано с примерами.
ну вот смотри:

{$list_field} Array (2)
54 => Array (3)
form_title => Описание
form_type => textarea
form_value => empty
53 => Array (3)
form_title => Ценна
form_type => text
form_value => empty
}
попытка обойти его section

{section name=elem loop=$list_field}
elem:{$list_field[elem].form_title} //нет вывода
{/section}
если бы индексация была с 0, то тогда ок, иначе колличество итераций правильное - но данные не отображаются.
 

Demiurg

Guest
может тебе завести массив вида
Array (2)
0 => Array (3)
id => 54
form_title => Описание
form_type => textarea
form_value => empty
1 => Array (3)
id => 53
form_title => Ценна
form_type => text
form_value => empty
}
 

Brezee

Новичок
так и сделал, добавив id как еще одно поле, иначе никак.
хотя странно почему не получается ?!
 

Demiurg

Guest
потому что section - это аналог for, то есть цикл с заданной последовательностью, тогда как foreach - цикл для обхода массива.
 
Сверху