並べ替えに関するモデファイア
ハッシュ変数には、配列のようなインデックスによる順序性はありませんが、sort_by モディファイアを指定することで、並べ替えて出力することが可能です。
指定できるsort_byモデファイアのオプションは次のとおりです。
- sort_by="key"
- キーの値を用いて順に並べ替える。
- sort_by="key reverse"
- キーの値を用いて逆順に並べ替える。
- sort_by="value"
- 格納値を用いて順に並べ替える。
- sort_by="value reverse"
- 格納値を用いて逆順に並べ替える。
- sort_by="value numeric"
- 格納値を数値として用いて順に並べ替える。
- sort_by="value numeric reverse"
- 格納値を数値として用いて逆順に並べ替える。
テストコード
<MTSetHashVar name="MyFriends">
<MTSetVar name="1" value="Taro">
<MTSetVar name="2" value="Hanako">
<MTSetVar name="3" value="Kenji">
<MTSetVar name="4" value="Shinji">
<MTSetVar name="5" value="Yuko">
<MTSetVar name="6" value="Mie">
<MTSetVar name="7" value="Masaru">
<MTSetVar name="8" value="Taeko">
<MTSetVar name="9" value="Katsutoshi">
<MTSetVar name="10" value="Momoe">
<MTSetVar name="11" value="Akira">
<MTSetVar name="12" value="Yuka">
</MTSetHashVar>
<MTLoop name="MyFriends" sort_by="key">
<p><MTGetVar name="__key__"> <MTGetVar name="__value__"></p>
</MTLoop>
出力結果
モデファイアなし
- 6 Mie
- 11 Akira
- 3 Kenji
- 7 Masaru
- 9 Katsutoshi
- 12 Yuka
- 2 Hanako
- 8 Taeko
- 1 Taro
- 4 Shinji
- 10 Momoe
- 5 Yuko
sort_by="key"
- 1 Taro
- 10 Momoe
- 11 Akira
- 12 Yuka
- 2 Hanako
- 3 Kenji
- 4 Shinji
- 5 Yuko
- 6 Mie
- 7 Masaru
- 8 Taeko
- 9 Katsutoshi
sort_by="key reverse"
- 9 Katsutoshi
- 8 Taeko
- 7 Masaru
- 6 Mie
- 5 Yuko
- 4 Shinji
- 3 Kenji
- 2 Hanako
- 12 Yuka
- 11 Akira
- 10 Momoe
- 1 Taro
sort_by="value"
- 11 Akira
- 2 Hanako
- 9 Katsutoshi
- 3 Kenji
- 7 Masaru
- 6 Mie
- 10 Momoe
- 4 Shinji
- 8 Taeko
- 1 Taro
- 12 Yuka
- 5 Yuko
sort_by="value reverse"
- 5 Yuko
- 12 Yuka
- 1 Taro
- 8 Taeko
- 4 Shinji
- 10 Momoe
- 6 Mie
- 7 Masaru
- 3 Kenji
- 9 Katsutoshi
- 2 Hanako
- 11 Akira
sort_by="value numeric"
- 6 Mie
- 11 Akira
- 3 Kenji
- 7 Masaru
- 9 Katsutoshi
- 12 Yuka
- 2 Hanako
- 8 Taeko
- 1 Taro
- 4 Shinji
- 10 Momoe
- 5 Yuko
sort_by="value numeric reverse"
- 5 Yuko
- 10 Momoe
- 4 Shinji
- 1 Taro
- 8 Taeko
- 2 Hanako
- 12 Yuka
- 9 Katsutoshi
- 7 Masaru
- 3 Kenji
- 11 Akira
- 6 Mie
- カテゴリ:Loop系