【PHP】foreachで配列の最初と最後で処理を変える
reset()関数とend()関数を使ってforeach文の最初と最後だけ処理を変える方法を紹介します。
通常のforeach文
$week = array("月","火","水","木","金","土","日");
foreach ( $week as $value){
echo $value;
}
▼表示結果
月火水木金土日
最初の判定はreset()関数
$week = array("月","火","水","木","金","土","日");
foreach ( $week as $value){
if($value == reset($week)){
//最初の処理
echo '曜日:'.$value;
}else{
//2周目以降の処理
echo '、'.$value;
}
}
▼表示結果
曜日:月、火、水、木、金、土、日
最初の処理で先頭に曜日:
を表示。2周目以降の処理は、$value
にして、曜日:の見出しがついたカンマ区切りの表示にしてます。
最後の判定はend()関数
$week = array("月","火","水","木","金","土","日");
foreach ( $week as $value){
if($value == end($week)){
//最後の処理
echo $value;
}else{
//2周目以降の処理
echo $value.'、';
}
}
▼表示結果
月、火、水、木、金、土、日
$value.'、'
でループさせ、最後の処理のみカンマをつけずに出力することで、配列をカンマ区切りで表示してます。