@html_student
Молодой и глупый.

Как собрать переменную в массив smarty?

Подскажите пожалуйста

{if $cs->subcategories}
                        {foreach $cs->subcategories as $ccs}
                            <div> {$ccs->id} </div>
                        {/foreach}
                    {/if}


Есть такой код на smarty
в foreach пробегаюсь по категориям и вывожу id их. Вопрос. Как мне все это собрать в цикле в одну переменную массивом? в целом зачем мне это нужно.

я хочу собрать все подкатегории и потом сравнивать

{if in_array($category->id, $array)}
где $category->id это текущая категория а $array это тот массив который я хочу собрать в цикле фореч выше.

в цикле {$level_1 = ['id' => $c->id]}
Но тут же в переменную запишется последний шаг фореча
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
palaum
@palaum
{if $cs->subcategories}
	{foreach $cs->subcategories as $ccs}
		{* Формируем строку, конкатенируем значения с каждым проходом цикла, значения присоединяем через запятую *}
		{$string = $string|cat:",`$ccs->id`"}
	{/foreach}

	{* Обновляем строку, обрезав первый символ (запятую) *}
	{$string = $string|substr:1:"`$string|count_characters:true`"}

	{* Создаем массив из строки, указав в качестве разделителя запятую *}
	{$array = ","|explode:$string}

	{* Выводим информацию о переменной *}
	{$array|print_r}
{/if}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы