配列データをforやforeachで数の分繰り返しする際に、最初のデータのみに何かしらの処理をしたいという場合があったりします。

例えばサイドメニュー表示の繰り返しで、最初のメニューだけにcurrentやactiveなどのクラスを付加したい場合とかあります。

その時繰り返す処理の中に最初のデータのみにそのクラス名を出力したいという場合、以下のような方法があったので記録します。

 

// for文を使った時
for ($i = 0; $i <= count($array); $i++){
  echo $array[$i];
  if($i === "0") echo "最初のデータ";
}

// foreach文を使った時
foreach ($array as $key => $value){
  echo $value;
  if($key === array_key_first($array)) echo "最初のデータ";
}

 

for文の場合は追加される数字を基準に考えると分かりやすいと思いました。

foreach文の場合はarray_key_firstで配列の最初のキーを取得し、繰り返しの時に比較するという方法でした。