mtde.info

Movable Type Developers Express

並べ替えに関するモデファイア

2008年2月 2日 21:53 | Writer: apstar | 記事本文

ハッシュ変数には、配列のようなインデックスによる順序性はありませんが、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系

2008 mtde.info