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

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}タグを使用してPHPを直接記述します。

{php}
  global $features;
  print_r($features);
{/php}
于 2012-05-29T06:33:17.683 に答える
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

このスマートなコードを試してください:

{foreach from=$features item=f}

  {if $f.id_feature eq 9}

   {$f.value}

   {$f.id_feature}

  {/if}

{/foreach}
于 2012-05-29T08:22:14.213 に答える