PHP foreachループの最初と最後の反復を決定する方法は?質問する

PHP foreachループの最初と最後の反復を決定する方法は?質問する

質問は簡単です。foreachコードにループがあります。

foreach($array as $element) {
    //code
}

このループでは、最初の反復または最後の反復のときに異なる反応をしたいと思います。

これを行う方法?

ベストアンサー1

ループ外でカウンターを初期化する必要のないソリューションを希望する場合は、現在の反復キーを、配列の最後のキーまたは最初のキーを示す関数と比較できます。

PHP 7.3 以降:

foreach ($array as $key => $element) {
    if ($key === array_key_first($array)) {
        echo 'FIRST ELEMENT!';
    }

    if ($key === array_key_last($array)) {
        echo 'LAST ELEMENT!';
    }
}

PHP 7.2 以前:

PHP 7.2 はすでに EOL (サポート終了) となっているため、これは歴史的な参照用としてのみここにあります。使用は避けてください。

foreach ($array as $key => $element) {
    reset($array);
    if ($key === key($array)) {
        echo 'FIRST ELEMENT!';
    }

    end($array);
    if ($key === key($array)) {
        echo 'LAST ELEMENT!';
    }
}

おすすめ記事