php-搜索嵌套在laravel集合中的数组

我有一个api调用,它返回一组数据,如下所示:

{
"id": 97423,
"visitor_id": 231505,
"domain_sessionidx": 1,
"session_start": "2017-06-01 04:40:07",
"session_end": "2017-06-01 05:22:45",
"session_length": 2558,
"count_pages": 11,
"count_pings": 7,
"created_at": null,
"updated_at": "2017-06-12 18:59:51",
"pages": [
    1829,
    1811,
    1829,
    1501,
    1829,
    1889,
    1762,
    1686,
    1825,
    1825,
    1825
]  },....

我将其放入变量并从中进行收集:

$new_var = collect($result);

我遇到了问题,因为我只想访问页面包含ID 1762的数据中的记录.我一直在尝试:

$new_var->whereIn('pages',[1762])->pluck('pages')

但我总是得到一个空洞的结果.任何帮助是极大的赞赏.

解决方法:

我觉得您需要过滤$new_var集合,如果它的pages属性包含要查找的页面,则返回true.例如:

$page = 1762;
$inPages = $new_var->filter(function($collection) use($page){ 
  return in_array($page, $collection->pages); 
});

$inPages现在应该是$new_var的子集,其页面数组中包含1762的条目,否则它将是一个空Collection.在这里查看更多信息:https://laravel.com/docs/5.4/collections

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...