laravel通过最新版本获取会话数据和顺序

laravel通过最新版本获取会话数据和顺序,laravel,session,Laravel,Session,我正在使用Laravel处理会话数据,我可以将会话存储到变量中并检索整个数据。但我的问题是,我想从存储的会话中将会话排序为最新的5个id 存储会话 session()->push('products.recently_viewed', $product->getKey()); $ids = session()->get('products.recently_viewed'); $recently_viewed = Product::whereIn('id', $ids)-&g

我正在使用Laravel处理会话数据,我可以将会话存储到变量中并检索整个数据。但我的问题是,我想从存储的会话中将会话排序为最新的5个id

存储会话

session()->push('products.recently_viewed', $product->getKey());
$ids = session()->get('products.recently_viewed');
$recently_viewed = Product::whereIn('id', $ids)->get();
检索会话

session()->push('products.recently_viewed', $product->getKey());
$ids = session()->get('products.recently_viewed');
$recently_viewed = Product::whereIn('id', $ids)->get();
检索工作正常,我只想从会话
产品中获取最新的5个id。最近查看了

e、 g

来自会话的数据

[1,3,7,6,8,9,11,2]
我想得到的数据

[2,11,9,8,6]

您需要数组\u切片和数组\u反转

$items = array_reverse(array_slice($yourSessionArray, -5));
-5表示“从数组末尾之前的五个元素开始”。
反过来会颠倒数组的顺序,所以最后一个是第一个。

谢谢@Cameron,我还需要一个唯一的来过滤重复id,我应该这样做吗<代码>$items=array\u reverse(array\u切片(array\u unique($recently\u view\u id),-5))