Laravel

PHPのforeachで1つ先の要素を取得し比較する方法

PHPのforeach文の繰り返し処理で取得した要素の1つ先の要素(次の要素)を取得し、現在要素と比較する方法をご紹介します。

配列データを用意

※foreachで使用する以下の配列データを用意します。

$valus = [
    0 => [
        "name" => "太郎",
        "sex" => "man",
        "age" => 30,
        "email" => "a0@dad-union.com"
    ],
    1 => [
        "name" => "一郎",
        "sex" => "man",
        "age" => 31,
        "email" => "b1@dad-union.com"
    ],
    2 => [
        "name" => "次子",
        "sex" => "woman",
        "age" => 22,
        "email" => "c2@dad-union.com"
    ]
];

foreachで現在要素と1つ先の要素を比較(素のPHP)

※foreachで現在要素と1つ先の要素を比較し、比較内容によってメッセージを出力します。

<?php
foreach ($valus as $key => $valu) {
	if ($valus[$key]['age'] > $valus[$key + 1]['age']) {
		echo $valus[$key]['name']."は".$valus[$key + 1]['name']."より年上です。";
	}
}
?>

foreachで現在要素と1つ先の要素を比較(LaravelのBladeファイルに記述)

※LaravelのBladeファイルにforeach文を使った際は以下の様に記述しました。(素のPHP)の内容をBladeファイルに記述しても問題無いと思います。

@foreach ($valus as $key => $valu) {
<?php
	if($valus[$key]->age > $valus[$key + 1]->age){
		echo $valus[$key]->name."は".$valus[$key + 1]->name."より年上です。";
	}
?>
@endforeach

 
※流用される場合は自己責任でお願いします。