php - Laravel Collections - 比较和检查一个单词在一个集合中出现的次数
问题描述
我是 Laravel 的新手,我正在尝试执行以下操作:我有 2 个集合:“要求”和“技能”:
$req = collect([
'Installation',
'Konfiguration',
'Automatisierung'
]);
$skills = collect([
'Engineering Team',
'Installation',
'Konfiguration',
'Konfiguration',
'Automatisierung',
'Security',
'Automatisierung',
'Automatisierung',
'Automatisierung'
]);
我正在尝试以下操作:我想获取 $req 的第一项(“安装”)并计算它在 $skills 集合中存在的次数。然后我需要获取 $req 集合的第二个值并做同样的事情。最后,我需要一些输出,例如:
安装退出 2 次配置存在 2 次 Automatisierung 存在 3 次所有其他 -> 0(甚至忽略它)
我考虑过使用嵌套的 for 循环和 if 子句等进行迭代,例如“经典”编码,但是 laravel 中没有一些东西可以让它变得更好吗?我试过喜欢包含等等,但它就像“if”子句。
非常感谢提前
解决方案
您可以使用 laravel 的 countBy,它取决于函数
此代码将返回另一个数组,其中包含您所说的 3 个句子
$req->map(function($i) use ($skills) {
$count = $skills->countBy(function ($skill) use ($i) {
return $skill == $i;
});
if (isset($count[1])) {
return $i . " exits ". $count[1] ." times";
} else {
return $i . " doesn't exits";
}
});
你也可以这样做$skills->countBy()
,它会返回一个集合,其中键是技能的名称,值是它出现的次数
推荐阅读
- iis - 获取 HTTP 错误 400 - 标头太长错误
- python - 没有要从文件中解析的列 (EmptyDataError: )
- maven - Kotlin、Spring-boot 和 Maven:未解决的参考:SpringBootApplication
- julia - 了解 Julia Lang 中的 JuMP?
- r - 使用 dplyr mutate 自动生成新变量名的奇怪事情
- c# - Entity Framework Core 在同一个事务中使用具有不同连接字符串的多个上下文
- javascript - 什么时候可以将函数分配给 var?
- r - 在 R 中创建条形图的问题
- directx-9 - 如何将 3ds max 场景与我的 directx 9 游戏链接?
- nestjs - NestJS 从数组匹配中获取参数