「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
PHPUtilプラグイン(その14・配列/ハッシュの出力)
PHPUtilプラグインで配列やハッシュの要素をすべて出力するには、「MTPHPLoop」というテンプレートタグを使います。
1.MTPHPLoopタグの書き方
MTPHPLoopタグは、Movable Type標準のMTLoopタグと同じ書き方をします。
<mt:PHPLoop name="配列/ハッシュ名" sort_by="並べ替え方法" glue="区切り文字列"> 繰り返す処理 </mt:PHPLoop>
nameモディファイアで、出力する配列またはハッシュの名前を指定します。
sort_byモディファイアでは、以下のキーワードを指定して、並べ替えの方法を指定します。
キーワード | 並べ替え方法 |
---|---|
key | 要素のキー(配列の場合は要素の番号)で並べ替える |
value | 要素の値で並べ替える |
numeric | 数値として並べ替える |
reverse | 逆順に並べ替える |
keyとvalueはどちらかを指定します。
numericとreverseは、key/valueのどちらかと併用することができます。
例えば、キーの逆順で並べ替えたい場合は、「sort_by="key reverse"」と書きます。
numericを指定した場合、要素のキー(または値)を数値として並べ替えます。
numericを指定しない場合は、文字列として辞書順に並べ替えます。
例えば、「10」と「2」は、数値として並べ替えると「2」の方が小さいですが、文字として並べ替えると「10」の方が小さいです。
2.MTPHPLoopタグのブロックの中で使える変数
MTPHPLoopタグのブロックの中では、Movable Type標準のMTForタグと同様に、以下の変数を使うことができます。
なお、「__counter__」等の前後の「__」は、半角のアンダースコア2つです。
変数名 | 内容 |
---|---|
__key__ | 要素のキー(配列の場合は要素の番号) |
__value__ | 要素の値 |
__counter__ | 繰り返し回数 |
__first__ | 繰り返しの最初なら1、それ以外ではnull |
__last__ | 繰り返しの最後なら1、それ以外ではnull |
__even__ | 偶数回目の繰り返しなら1、それ以外ではnull |
__odd__ | 奇数回目の繰り返しなら1、それ以外ではnull |
3.事例
例えば、ハッシュのキーと値を表(table要素)にして出力したいとします。
ハッシュはキーで並べ替えるとします。
また、表の奇数行目/偶数行目では、tr要素にそれぞれ「class="odd"」「class="even"」のクラスを指定したいとします。
この場合、以下のようにテンプレートを組みます。
<mt:PHPLoop name="x" sort_by="key"> <mt:PHPIf name="__first__"><table></mt:PHPIf> <mt:PHPIf name="__odd__"> <tr class="__odd__"> <mt:PHPElse> <tr class="__even__"> </mt:PHPIf> <td><$mt:PHPGetVar name="__key__"$></td><td><$mt:PHPGetVar name="__value__"$></td> </tr> <mt:PHPIf name="__last__"></table></mt:PHPIf> </mt:PHPLoop>
1行目のMTLoopタグで、ハッシュxをキーで並べ替えて要素を順に出力します。
2行目では、変数__first__が真である(=繰り返しの最初である)時に、表の先頭の<table>タグを出力します。
3~7行目では、変数__odd__が真である(=奇数回目の繰り返しである)かどうかを判断し、そうであれば「class="odd"」のtr要素を出力し、そうでなければ「class="even"」のtr要素を出力します。
8行目では、ハッシュの各要素のキーと値を出力します。
そして、10行目では、変数__last__が真である(=繰り返しの最後である)時に、表の最後の</table>タグを出力します。
4.PHPUtilプラグイン関係の記事の一覧
PHPUtil関係のその他の記事は、以下のリンクから参照できます。
- PHPUtilプラグイン(その1・概要とインストール)
- PHPUtilプラグイン(その2・ファイルの読み込み)
- PHPUtilプラグイン(その3・日時関係の処理)
- PHPUtilプラグイン(その4・ユーザーエージェントの判断)
- PHPUtilプラグイン(その5・変数の基本)
- PHPUtilプラグイン(その6・変数の計算)
- PHPUtilプラグイン(その7・配列の利用)
- PHPUtilプラグイン(その8・配列関係の関数)
- PHPUtilプラグイン(その9・ハッシュの利用)
- PHPUtilプラグイン(その10・GET/POSTされた値を得る)
- PHPUtilプラグイン(その11・条件判断前半)
- PHPUtilプラグイン(その12・条件判断後半)
- PHPUtilプラグイン(その13・一定回数の繰り返し)
- PHPUtilプラグイン(その14・配列/ハッシュの出力)
- PHPUtilプラグイン(その15・条件による繰り返し)
- PHPUtilプラグイン(その16・繰り返しを途中で抜ける)
- PHPUtilプラグイン(その17・関数の実行)
- PHPUtilプラグイン(その18・各種のグローバルモディファイア)