Ваш первый референт должен состоять в том, чтобы попытаться реструктурировать ваши данные - будь то на PHP или в Smarty, используя составной ключ для представления нескольких измерений таких данных, которые, как правило, становятся беспорядочными. PHP делает работу с многомерными массивами невероятно легкой, поэтому стыдно не использовать эту мощность.
Вы могли бы перебираем ваших данных и создать новую структуру с чем-то вроде этого:
$better_structured_array = [];
foreach ($awkward_raw_array as $old_key => $item_value) {
list($first_key, $second_key, $third_key) = explode('_', $old_key);
$better_structured_array[$first_key][$second_key][$third_key] = $item_value;
}
Тогда ваш Smarty будет легко:
{if $a.column[$id1][$id2] == 0}{/if}
Если вы действительно не можете сделать это для по какой-то причине фокус состоит в том, чтобы сначала вставить ключ в переменную, а затем использовать его как ключ доступа:
{assign name=ugly_array_key value='column_'|cat:$id1|cat:'_'|cat:$id2}
{if $a[$ugly_array_key] == 0}{/if}
Спасибо, этот вопрос, но проблема у меня другая. Извините, мой плохой английский, я пытаюсь подвести итог. У меня есть три массива. Например: $ selects, $ options, $ saved_data. {foreach from = $ selects item = i}
SO! Если пользователь что-то сохранит, я должен отобразиться. - >> – WOLFNeT
Это проблема. {If ...} selected = "selected" {/ if} – WOLFNeT