вам посчитать значения в массив с Smarty
у меня есть массив называется $mydata
это выглядит так:
Array
(
[0] => Array
(
[id] => 1282
[type] =>2
)
[1] => Array
(
[id] => 1281
[type] =>1
)
[2] => Array
(
[id] => 1266
[type] =>2
)
[3] => Array
(
[id] => 1265
[type] =>3
)
)
Я назначил массив smarty $smarty->assign("results", $mydata)
Теперь, в шаблоне, мне нужно напечатать, сколько каждого "типа" есть в массиве. Кто-нибудь может мне помочь?
3 ответов
PHP 5.3, 5.4:
начиная с Smarty 3 Вы можете сделать
{count($mydata)}
вы также можете передать его в Smarty 2 или 3:
{$mydata|count}
чтобы подсчитать значения типа, вам придется пройти через массив в PHP или Smarty:
{$type_count = array()}
{foreach $mydata as $values}
{$type = $values['type']}
{if $type_count[$type]}
{$type_count[$type] = $type_count[$type] + 1}
{else}
{$type_count[$type] = 1}
{/if}
{/foreach}
Count of type 2: {$type_count[2]}
PHP 5.5+:
С PHP 5.5+ и Smarty 3 Вы можете использовать новый array_column
функция:
{$type_count = array_count_values(array_column($mydata, 'type'))}
Count of type 2: {$type_count['2']}