Bel*_*eró 2 php laravel laravel-5
我有以下数组,我需要对其进行过滤并仅获取具有的元素 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
]
]
Run Code Online (Sandbox Code Playgroud)
这是预期的结果:
array:2 [
0 => array:3 [
"id" => 1
"name" => "Agua Corriente"
"type" => 1
]
1 => array:3 [
"id" => 2
"name" => "Cloaca"
"type" => 1
]
]
Run Code Online (Sandbox Code Playgroud)
我试图用Arr::where助手解决它,但我没有得到预期的结果。有没有人可以帮助我?
问候
$filteredArray = Arr::where($myArray, function ($value, $key) {
return $value['type'] == 1;
});
Run Code Online (Sandbox Code Playgroud)
这就是您可以Arr::where在阵列中使用的方式,并且应该可以正常工作。
同样对于像这样的laravel 集合有非常方便的工具,你也应该看看它。
如果您想根据动态分配的变量进行过滤,大多数情况下您可以简单地将其注入到嵌套函数中,例如:
$type = 1;
$filteredArray = Arr::where($myArray, function ($value, $key) use($type) {
return $value['type'] == $type;
});
Run Code Online (Sandbox Code Playgroud)
您可以使用array_filter并在里面给出您需要的条件。
$data = array_filter($array, function ($item) {
return $item["type"] === 1;
});
print_r($data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7752 次 |
| 最近记录: |