php - 基于元素值的 Laravel 过滤器数组
问题描述
我有以下数组,我需要对其进行过滤并仅获取具有type = 1
array:5 [
0 => array:3 [
"id" => 1
"name" => "Agua Corriente"
"type" => 1
]
1 => array:3 [
"id" => 2
"name" => "Cloaca"
"type" => 1
]
2 => array:3 [
"id" => 3
"name" => "Gas Natural"
"type" => 2
]
3 => array:3 [
"id" => 4
"name" => "Internet"
"type" => 3
]
4 => array:3 [
"id" => 5
"name" => "Electricidad"
"type" => 3
]
]
这是预期的结果:
array:2 [
0 => array:3 [
"id" => 1
"name" => "Agua Corriente"
"type" => 1
]
1 => array:3 [
"id" => 2
"name" => "Cloaca"
"type" => 1
]
]
我正在尝试用Arr::where
助手解决它,但我没有得到预期的结果。有人可以帮助我吗?
问候
解决方案
$filteredArray = Arr::where($myArray, function ($value, $key) {
return $value['type'] == 1;
});
这就是您可以Arr::where
在阵列中使用的方式,并且应该可以正常工作。
同样对于像这样的东西,laravel 集合有非常方便的工具,你也应该看看它。
如果您想基于动态分配的变量进行过滤,大多数情况下您可以简单地将其注入嵌套函数中,例如:
$type = 1;
$filteredArray = Arr::where($myArray, function ($value, $key) use($type) {
return $value['type'] == $type;
});
推荐阅读
- html - Spring Boot Thymeleaf 分页
- python - 将 numpy 数组转换为映射到行的值的字典
- python - Python Pandas - 合并多个数据框
- reporting-services - SSRS 根据列值和参数更改填充颜色
- azure - 使用 Azure SAS 是否有任何成本(以美元计)?
- python - 使用 Pandas Dataframes 的 Scipy 余弦相似度非常慢
- javascript - 来自控制器的数据不会出现在 AngularJS 版本 1.6.10 的 templateUrl 中
- php - 如何创建一个静态变量并从另一个类调用它?
- github-pages - 如何使用 github 页面中的 2 个降价文件创建简单的 2 页站点?
- angular - RXJS 6:新版本的 HttpInterceptor