在数组中查找 smarty

Find in array smarty

我有一个数组

Array
(
[0] => Array
    (
        [id] => 32
        [type] => 4           
    )

[1] => Array
    (
        [id] => 51
        [type] => 9            
    )
    ..
    ..
    ..
    ..
    ..
 [84] => Array
    (
        [id] => 51
        [type] => 9 
        [cnt] => 1180                       
    )   
 ) 

我需要在我的数组中找到 [cnt] 的值,它只存在于我整个数组的一个索引中。 [cnt] 的索引不是常数。

你需要遍历 while 数组。

{foreach from=$data key='k' item='i'}
    {if $i.cnt == 1180}
        {assign var='key' value=$k}
    {/if}
{/foreach}

值 1180 在键 {$key} 中。

{$data[$key]|print_r}

如果 smarty 有类似 break 的内容,您可以将其添加到 if 条件中。

编辑:
如果您需要查找 cnt 的值,它应该是:

{foreach from=$data key='k' item='i'}
    {if isset($i.cnt)}
        CNT value is: {$i.cnt}
        Key of item with CNT: {$k}
    {/if}
{/foreach}

您可以简单地使用 PHP 的 array_column 函数作为

$arr = array(  
           array('id'=>1,'value'=>'asdas'),     
           array('id'=>1,'value'=>'asdas'),  
           array('id'=>1,'value'=>'asdas'),  
           array('id'=>1,'value'=>'asdas'),  
           array('id'=>1,'value'=>'asdas','cnt'=>1185)  
        );  

print_r(array_column($arr, 'cnt'));