arrays - Laravel - 检查数组中是否存在值
问题描述
为什么这段代码每次都返回 false?
$lics = collect(['lic100' => auth()->user()->lic100, 'lic250' => auth()->user()->lic250, 'lic500' => auth()->user()->lic500]);
$licsowned = $lics->filter()->keys();
$haslicense = property_exists($licsowned, $data['lictype']);
$lics 拥有:
Illuminate\Support\Collection {#367 ▼
#items: array:3 [▼
0 => "lic100"
1 => "lic250"
2 => "lic500"
]
}
$data['lictype'] 有值lic250
我也尝试过 in_array() 但它给出了错误消息,即该值必须是一个数组并且我传递了一个对象。
解决方案
您需要使用实例contains()
方法。Collection
例如:
$collection = collect(['name' => 'Desk', 'price' => 100]);
$collection->contains('Desk');
或者,在您的任务中:
$lics = collect(['lic100' => auth()->user()->lic100, 'lic250' => auth()->user()->lic250, 'lic500' => auth()->user()->lic500]);
$lics->contains('lic250');
更多信息:
推荐阅读
- foreign-keys - 如何在 starUML ER 图中插入外键(FK)?
- javascript - 如何从 JS 触发 CSS 动画?
- linux - 我可以在同一台机器上同时创建特权容器和非特权容器吗?
- java - 比较器接口中的比较方法
- java - 使用与 JavaFX 应用程序关联的线程捕获按键按下
- macos - 即使我已经设置了 $PATH 变量仍然找不到命令
- c# - 为每个循环调整标签中的多个文本c#Xamarin
- python-3.x - 我写信是为了声明一个接受字典作为参数的函数。该函数应返回带有交换键和值的 new_dict
- craftcms - Craftcms 路由在本地不工作,但它在服务器上工作
- java - 从集合中提取信息——可读性还是性能?