У меня есть шаблон smarty, где плагин загружает массив для меня. Этот массив содержит некоторые элементы, которые сами являются массивами объектов stdClass, и другие элементы, которые являются просто объектами stdClass. Например, у меня может быть
Array
(
[0] => Array
(
[0] => stdClass Object
(
[id] => 1
[avatar_file] => joey_thumb.jpg
[group] => 0
[order_in_group] => 0
)
[1] => stdClass Object
(
[id] => 2
[avatar_file] => christy_thumb.jpg
[group] => 0
[order_in_group] => 1
)
)
[1] => stdClass Object
(
[id] => 11
[avatar_file] => angela_thumb.jpg
[group] =>
[order_in_group] =>
)
)
В моем шаблоне есть что-то с эффектом:
{foreach from=$membersArray item=memberOrGroup}
{if is_array($memberOrGroup)}
<div>{$memberOrGroup[0].id}</div>
{else}
<div>{$memberOrGroup.id}</div>
{/if}
{/foreach}
Но как только он встречает любую нормальную замену, как в моих тегах div, у которых есть ссылка на массив, например $ memberOrGroup [0], я получаю ошибку «Невозможно использовать объект типа stdClass как массив». Я вроде как на своем конце, так как я могу распечатать исходный массив, и он показывает элементы, расположенные, как указано выше. Я даже могу напечатать внутри «is_array» if block, используя {$ memberOrGroup [0] | print) r}, и он распечатывает объект stdClass, заполненный правильными данными, и не выдает ошибку.
Я видел несколько решений в сети, которые показывают использование вложенных циклов foreach, но в реальной версии моего цикла каждый элемент массива второго измерения должен быть размещен в определенном месте (как в $ memberOrGroup [0] занимает особое место, как и $ memberOrGroup [1]).
Я пробовал несколько вариантов, включая использование разделов, но все равно дошел до той же ошибки.