Php 从laravel中的集合创建关联数组以进行检查
我在尝试从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
$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()将我需要的值分配给一些变量。