Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Laravel中使用多个过滤器_Laravel - Fatal编程技术网

在Laravel中使用多个过滤器

在Laravel中使用多个过滤器,laravel,Laravel,我正在拼命寻找一种在我的板上制作多个过滤器的方法。目前,我正在使用filter()函数过滤数组中的一些元素。我需要用同一个键显示多个数组的元素,但我不能这样做 我的控制器: $arrays = $arrays->filter(function ($item) use ($five, $four, $three, $two){ return data_get($item, 'note') == $five; }); 我需要显示包含注释

我正在拼命寻找一种在我的板上制作多个过滤器的方法。目前,我正在使用filter()函数过滤数组中的一些元素。我需要用同一个键显示多个数组的元素,但我不能这样做

我的控制器:

$arrays = $arrays->filter(function ($item) use ($five, $four, $three, $two){
                return data_get($item, 'note') == $five;
            });

我需要显示包含注释键的数组,其中包含
$5
$4
$3
$2
。可以在同一个函数中执行多个
数据\u get
吗?

您需要的不一定是
过滤器()
,而是
groupBy()
函数

如果您试图根据属性的值进行分组,那么您可能需要做的就是

$arrays->groupBy('note');
如果您试图按更复杂的内容分组,则可以使用回调(类似于过滤器)


如果你想通过一个数组的代码< >$Vals/Cuth>过滤,那么你可能想考虑这样做,而不是:

$values = collect([$five, $four, $three, $two]);

$arrays->filter(function ($value) use ($values) {
   return $values->has($value);
});
如果要检查键->值对的值,请使用
contains()
方法

如果要检查键->值对的键,请使用
has()
方法

这样做是否有效
返回数组(data\u get($item,'note'),[$5,$4,$3,$2])
?不,它不起作用,所以你正在尝试筛选你的集合,还是尝试按你的参数对它们进行分组?是的,我尝试用我的参数对它们进行分组,结果是错误的。我想在我的收藏中只看到值为
$5
$4
$3
$2
的数组。不是其他的。@RootMeIH您能给我们一个示例,说明您拥有的数组的输入/输出以及您希望如何拥有这些数组吗?
$values = collect([$five, $four, $three, $two]);

$arrays->filter(function ($value) use ($values) {
   return $values->has($value);
});