【Laravel】foreachの中で対象の値の次のキーを取得したいとき

ある配列があり、foreachした際に、ある値になったらその値の次の要素を取得したい時の方法を紹介します。

foreachの中で対象の値の次のキーを参照する

//id5の次の値を取りたいが更新順でソートされているため、idでorderByができない(idでソートしたいわけではない)
$id = 5; 

$news = News::orderBy('updated_at', 'desc')->get();

$next_page = [];
foreach ($news as $index => $value) {
    if ($value->id === $id) {
        if (isset($news[$index + 1])) {
            $next_page = $news[$index + 1];
        } else {
            $next_page = null;
        }
    }
};

foreachの中で対象の値の前のキーを参照する

//id5の次の値を取りたいが更新順でソートされているため、idでorderByができない(idでソートしたいわけではない)
$id = 5; 

$news = News::orderBy('updated_at', 'desc')->get();

$prev_page = [];
foreach ($news as $index => $value) {
    if ($value->id === $id) {
        if (isset($news[$index - 1])) {
            $prev_page = $news[$index - 1];
        } else {
            $prev_page = null;
        }
    }
};

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。