[PHP] foreachで配列の最初と最後を判別する方法
- 公開日:2015/8/18
この記事は最終更新日から9年以上が経過しています。
配列の要素を取り出す場合に「foreach」をよく使います。
このforeachの処理中、最後だけ処理を変えたいことがあったので、その判別方法をメモ。
ついでに最初を判別する方法も。
判別には、重複しない配列キーを使用します。
foreachでループする前に、最初と最後の配列キーを取得しておいて、ループ中にそのキーと一致するか否かを判定していくという段取り。
配列キーを取得するには、each関数を使用します。
each関数で現在ポインタされているキーと値を取得できます。
配列の最初にポインタを合わせるには、reset関数を、
配列の最後にポインタを合わせるには、end関数を使用します。
// 対象の配列 $array = array('apple', 'banana', 'cranberry'); // 配列の最初にポインタを移動 reset($array); // このときのキーを取得 list($first_key,) = each($array); // 配列の最後にポインタを移動 end($array); // このときのキーを取得 list($last_key,) = each($array); foreach ($array as $key => $value) { if ($key === $first_key) { // 最初だけの処理 } if ($key === $last_key) // 最後の要素 { // 最後だけの処理 } // 通常の処理 }