次のような_$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)
に割り当てました
ここで、テンプレートで、配列にある各「タイプ」の量を出力する必要があります。誰かが私がこれをするのを手伝ってくれる?
PHP 5.3、5.4:
Smarty 3の時点で、次のことができます
{count($mydata)}
Smarty2または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+およびSmarty3を使用すると、新しいarray_column
関数を使用できます。
{$type_count = array_count_values(array_column($mydata, 'type'))}
Count of type 2: {$type_count['2']}
これを試しましたか?:
{$mydata|@count}
ここで、countはphp関数count()を渡しています。
次のものも使用できます。
{if $myarray|@count gt 0}...{/if}