1

我有以下 multidim 数组;

[features] => Array
    (
        [0] => Array
            (
                [value] => Foo
                [id_feature] => 9
            )

        [1] => Array
            (
                [value] => Bar
                [id_feature] => 10
            )

    )

作为 Smarty 的新手,而且它的处理方法经常是逆向的,我不知道从哪里开始,如果我想根据该数组的值获得一个特定的id_feature数组。

也就是说,我需要将例如包含“9”的数组放入一个变量中id_feature

我该怎么办?

4

3 回答 3

1

使用 in_array 怎么样?

<?php
function getArray($search) {
   foreach($features as $val) {
      if(in_array($search, $val)){
        return $val;
      }
   }
 }
?>
于 2012-05-29T04:19:20.703 回答
1

前提是您在 PHP 中分配了这样的内容:

$features = array( 
    array("value" => "Foo", "id_feature" => 9), 
    array("value" => "Bar", "id_feature" => 10) );
$smarty->assign('features', $features);

在 Smarty 模板中,{$features[0].value}会给你Foo.

您还可以使用{for}{foreach}- 检查文档http://www.smarty.net/docsv2/en/遍历数组

甚至可以{php}直接用tag来写PHP:

{php}
  global $features;
  print_r($features);
{/php}
于 2012-05-29T06:33:17.683 回答
1

试试这个聪明的代码:

{foreach from=$features item=f}

  {if $f.id_feature eq 9}

   {$f.value}

   {$f.id_feature}

  {/if}

{/foreach}
于 2012-05-29T08:22:14.213 回答