Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Php 从laravel中的集合创建关联数组以进行检查_Php_Arrays_Laravel_Associative - Fatal编程技术网

Php 从laravel中的集合创建关联数组以进行检查

Php 从laravel中的集合创建关联数组以进行检查,php,arrays,laravel,associative,Php,Arrays,Laravel,Associative,我在尝试从Laravel中的集合创建关联数组时遇到了困难。然后应使用该数组进行案例检查 我的收藏是这样的: $collected_items = $user->collected_items()->where('model_id', '=', $model_id)->get(); $black_items = $collected_items->filter(function ($value, $key) { return $value->model_colo

我在尝试从Laravel中的集合创建关联数组时遇到了困难。然后应使用该数组进行案例检查

我的收藏是这样的:

$collected_items = $user->collected_items()->where('model_id', '=', $model_id)->get();
$black_items = $collected_items->filter(function ($value, $key) {
  return $value->model_color_id == 1;
});
我只需要从这个集合中提取一些相关数据,比如
'color\u id'

我需要检查
color\u id
,因为如果
color\u id=0、1或2,我应该运行不同的代码

因为我不想对每种情况都进行DB查询,所以我认为最好先加载数据,然后将其放入关联数组中

然而,就我个人而言,我无法创建此数组 我试过:


然后我会使用
$array\u of_colors
来检查我是否有黑色的情况,然后做一些事情,白色的事情等等。

我强烈建议使用Laravel中提供的收集功能,而不是这样做。特别是我认为
filter()
对您来说会很好

$array_of_colors = []

foreach ($collected_items as $i) {

                if ($i['color_id'] == 0) {

                    $array_of_colors[] = ['black' => $i->model_color_id];
                }
                if ($i['color_id'] == 1) {

                    $array_of_colors[] = ['colored' => $i->model_color_id];
                }
                if ($i['color_id'] == 2) {

                    $array_of_colors[] = ['white' => $i->model_color_id];
                }


            }

大概是这样的:

$collected_items = $user->collected_items()->where('model_id', '=', $model_id)->get();
$black_items = $collected_items->filter(function ($value, $key) {
  return $value->model_color_id == 1;
});

你真的得到了一个集合你研究过使用
filter
选项了吗?你是对的,谢谢,我使用filter()选项,然后在过滤的集合上使用max()和min()将我需要的值分配给一些变量。