Under the Bridge

a Picture of the Late Him

MT4.1:Forループ(配列中より特定のデータのインデックスを取得)

2008年1月 6日 13:39 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(0)

MT4.1(Movable Type4.1)での、Forループサンプル。配列中に含まれる、特定のデータが何番目のインデックスであるのかを調べるサンプル。プログラム的なことをやっていると、意外とこの需要はある。

テストコード


<p>実行結果</p>
<MTSetVar name="chrData[0]" value="あいうえお">
<MTSetVar name="chrData[1]" value="かきくけこ">
<MTSetVar name="chrData[2]" value="さしすせそ">
<MTSetVar name="chrData[3]" value="たちつてと">
<MTSetVar name="chrData[4]" value="なにぬねの">
<MTSetVar name="chrData[5]" value="はひふへほ">

"さしすせそ"の配列インデックスを得る(1)
<mt:for var="x" from="0" to="5">
    <MTIf name="chrData[$x]" eq="さしすせそ">
         <MTSetVarBlock name="findindex"><MTGetVar name="x"></MTSetVarBlock>
    </MTIf>
</mt:for>
さしすせそのインデックスは、<MTGetVar name="findindex">です。

"さしすせそ"の配列インデックスを得る(2)
<mt:for var="x" from="0" to="5">
    <MTIf name="chrData[$x]" eq="さしすせそ">
         <MTSetVarBlock name="findindex"><MTGetVar name="__index__"></MTSetVarBlock>
    </MTIf>
</mt:for>
さしすせそのインデックスは、<MTGetVar name="findindex">です。

"さしすせそ"が何番目かを得る
<mt:for var="x" from="0" to="5">
    <MTIf name="chrData[$x]" eq="さしすせそ">
         <MTSetVarBlock name="findindex"><MTGetVar name="__counter__"></MTSetVarBlock>
    </MTIf>
</mt:for>
さしすせそは、<MTGetVar name="findindex">番目です。

"ぬね"の含まれるデータを得る
<mt:for var="x" from="0" to="5">
    <MTIf name="chrData[$x]" like="ぬね">
         <MTSetVarBlock name="findindex"><MTGetVar name="x"></MTSetVarBlock>
         <MTSetVarBlock name="findchr"><MTGetVar name="chrData[$x]"></MTSetVarBlock>
    </MTIf>
</mt:for>
"ぬね"の含まれるデータは、インデックスが<MTGetVar name="findindex">の、<MTGetVar name="findchr">です。

出力結果

"さしすせそ"の配列インデックスを得る(1)

さしすせそのインデックスは、2です。


"さしすせそ"の配列インデックスを得る(2)

さしすせそのインデックスは、2です。


"さしすせそ"が何番目かを得る

さしすせそは、3番目です。


"ぬね"の含まれるデータを得る

"ぬね"の含まれるデータは、インデックスが4の、なにぬねのです。

考察

MTIfやSetVar系のテンプレートタグが使いこなせないと難しい。

トラックバック(0)

このブログ記事を参照しているブログ一覧: MT4.1:Forループ(配列中より特定のデータのインデックスを取得)

このブログ記事に対するトラックバックURL:

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008年4月5日開催、MT4LP5

2008 yoshi(apstar)