« PHP:日数差を算出 | メイン | PHP:clearstatchache()関数 »
2006年11月07日
PHP:配列のポインタ制御の使い方
配列の要素をwhileループなどで回して出力した際に、なぜか配列の要素が出力されない、という経験をされた方もいらっしゃると思います。2回目以降に同一配列の要素を出力したい場合には、配列のポインタをリセットする必要があります。
■ 失敗例
$ARRAY = array('PHP', 'perl', 'JAVA');
while(list($key, $value) = each($ARRAY)){
print $value; //この部分の内容は出力されます。
}
while(list($key, $value) = each($ARRAY)){
print $value; //この部分の内容は出力されません。
}
※上記の例は、1回目のwhileループで配列$ARRAYのポインタが末尾に到達しているため、2回目のwhileループは配列$ARRAYの要素がないとみなされ、内容が出力されません。
■ 正しい例
$ARRAY = array('PHP', 'perl', 'JAVA');
while(list($key, $value) = each($ARRAY)){
print $value;
}
reset($ARRAY);
//この一文を入れることにより、配列$ARRAYのポインタを先頭に戻します。
while(list($key, $value) = each($ARRAY)){
print $value; //この部分も正常に出力されます。
}
投稿者 wing : 2006年11月07日 00:27