10

$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)

ここで、テンプレートに、配列に含まれる各「型」の量を出力する必要があります。誰でも私がこれを行うのを手伝ってもらえますか?

4

3 に答える 3

24

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以降:

PHP5.5以降およびSmarty3では、次の新しいarray_column関数を使用できます。

{$type_count = array_count_values(array_column($mydata, 'type'))}
Count of type 2: {$type_count['2']}
于 2012-10-18T18:06:15.443 に答える
20

これを試しましたか?:

{$mydata|@count}

ここで、count は php 関数 count() を渡しています。

于 2012-10-18T18:00:37.813 に答える
5

以下も使用できます。

{if $myarray|@count gt 0}...{/if}
于 2013-10-29T11:27:19.923 に答える