I'll be NET 】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

トップページ > PHP > smartyのin_arrayで配列の中の値の有無を調べる方法

smartyのin_arrayで配列の中の値の有無を調べる方法

 PHPで$arrayという配列に「foo」という文字列が存在するかを調べるときは、下記のようにします。

$array = array("foo", "bar", "foobar");
if(in_array("foo", $array)){
    echo "配列に「foo」は存在します。";
};

 smartyでも、配列の中の値の有無を調べるのにin_arrayを利用します。

たとえば、$arrayという配列の中に「foo」という文字列があるかないかを調べるには、

{if in_array('foo',$array)}
    true
{else}
    false
{/if}

このようにすればOKです。
または、

{if 'foo'|in_array:$array}
    true
{else}
    false
{/if}

と書くこともできます。

探す対象に変数を利用する場合は、

{if in_array($target,$array)}
    true
{else}
    false
{/if}

もしくは

{if $target|in_array:$arr}
    true
{else}
    false
{/if}

としましょう。

in_arrayで調査できるのは、同一次元の配列内の値のみです。
たとえば、

$arrays = array(
    sample1 => array(
        id => "foo",
        name => "bar",
        text => "foobar"
    ),
    sample2 => array(
        id => "hoge",
        name => "piyo",
        text => "hogehoge"
    ),
    sample3 => array(
        id => "pochi",
        name => "tama",
        text => "mike"
    )
);

という二次元配列があったとして、

{in_array('foo',$arrays)}
{$arrays|in_array:'foo'}

としても、結果はFALSEになってしまいます。

{in_array('foo',$arrays.sample1)}
{$arrays.sample1|in_array:'foo'}

上記のようにすれば、結果はTRUEになります。

参考URL

記事移動

関連記事

Smartyで配列の中身をデバッグする方法

smartyのarray_key_existsで配列の中のキーの有無を調べる方法

smartyのassignでテンプレート内変数を定義する方法

smartyでいろいろ計算をする(math利用法)

smartyのforeachでループ回数を取得する方法

smartyのforeachで最初と最後のループの時になにかする方法

Comment Form

  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)【I'll be NET】

プロフィール

author:I'll be NET

since:2014.01.01

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。

more

Feed