[php]連想配列をforeachする際の1回目の判別方法

配列じゃなくて連想配列。

こうする

$sampleArray = array('key'=>'value','key'=>'value','key'=>'value','key'=>'value',...);

foreach($sampleArray as $key => $value){
    if($value === reset($sampleArray)){
        //1回目の処理
    }else{
        //2回目以降
    }
}

reset()を使うことで一発目の連想配列の値が出せる。foreachで回した際に値が合致したら1回目だ、ということになる。

値が重複するデータの場合は詰むので使い分けが必要。

またはこう

$sampleArray = array('key'=>'value','key'=>'value','key'=>'value','key'=>'value',...);
$count = 1;
$arrayCount = count($sampleArray);
foreach($sampleArray as $key => $value){
    if($count == 1){
        //1回目の処理
    }else if($count == $arrayCount){
        //最後の処理
    }else{
        //最初と最後以外
    }
    ++$count;
}

カウント用の変数($count)を作って回すたびに増やせばいいですね。

count()で配列内の数を出せるんで、最後もやれる。応用して、最初からn番目、最後からn番目とかの指定もやっていける。そこまで込み入ったことは余りやらないと思うけど。

コメント

タイトルとURLをコピーしました