« 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

コメント