2016-04-27 2 views
0

У меня есть массив PHP с именем consolidatedReviewData, который выглядит следующим образом:доступа вложенной ассоциативный массив в шаблоне Smarty

Array 
(
    [consolidatedData] => Array 
     (
      [0] => Array 
       (
        [a_productidentification] => 5920 
        [avg_rating] => 4.0000 
        [no_reviews] => 2 
       ) 

     ) 

) 

и я назначаю его в Smarty переменной, как это:

self::$smarty->assign('cosolidatedReviews', $consolidatedReviewData); 

сейчас , мой вопрос в том, как я могу напрямую получить доступ к avg_rating внутри .tpl?

Что-то вроде:

{$consolidatedReviewData->consolidatedData->0->avg_rating} 
+0

вы наклоненный доступ _avg_rating_ напрямую, вам нужно проходной '$ consolidatedData' и доступ к ней один на один –

+0

@Ranjith, он может получить доступ к любому элементу массива непосредственно с помощью точек. См. Http://www.smarty.net/docs/en/language.syntax.variables.tpl –

+0

@ Руслан, вы правы. ему нужно сделать что-то вроде этого '{foreach from = $ консолидированныйReviewData-> summaryData key = myId item = i} $ i.avg_rating {/ foreach}' –

ответ

1

Используйте точки, чтобы получить доступ к элементам массива:

{$consolidatedReviews.consolidatedData.0.avg_rating} 

Это же, как и следующее в PHP:

echo $consolidatedReviews['consolidatedData'][0]['avg_rating']; 

-> для доступа к объекту свойства.

См http://www.smarty.net/docs/en/language.syntax.variables.tpl

+0

не работает! ничего не печатается. –

+0

@ShekharJoshi, у вас есть '$ combinedData [0]' или '$ summaryData ['avg_rating']' в PHP? Ваш массив образцов и «что-то вроде ...» в вопросе не совпадают. Независимо от того, что у вас есть, просто используйте точки для доступа к клавишам массива в Smarty –

+0

«что-то вроде» - это просто пример, изображающий доступ к этой переменной только в одной строке, вместо того, чтобы перебирать массив, я буду обновлять. Массив php является правильным. –

Смежные вопросы