php的collection数据集where的用法
时间: 2023-12-06 07:44:18 浏览: 21
在 PHP 中,可以使用 Collection 类来进行数组操作。其中,where 方法可以用于过滤数据集中的元素。
where 方法的基本语法如下:
```php
$filtered = $collection->where($key, $operator, $value);
```
其中,$key 表示要过滤的键名,$operator 表示要使用的运算符,$value 表示要过滤的值。
例如,如果要过滤一个数组,只保留 age 大于 18 的元素,可以使用以下代码:
```php
$users = collect([
['name' => 'John', 'age' => 20],
['name' => 'Mary', 'age' => 17],
['name' => 'Peter', 'age' => 25],
]);
$filtered = $users->where('age', '>', 18);
// 输出结果
// [
// ['name' => 'John', 'age' => 20],
// ['name' => 'Peter', 'age' => 25],
// ]
```
此时,$filtered 变量中的元素只包含 age 大于 18 的元素。可以使用其他运算符,如 `<`、`<=`、`=`、`>=`、`<>` 等,来进行比较。
如果要同时使用多个条件进行过滤,可以使用另一个 where 方法,如下所示:
```php
$filtered = $collection->where([
['key1', 'operator1', 'value1'],
['key2', 'operator2', 'value2'],
// ...
]);
```
其中,每个子数组表示一个条件。例如:
```php
$filtered = $users->where([
['age', '>', 18],
['name', '!=', 'Mary'],
]);
// 输出结果
// [
// ['name' => 'John', 'age' => 20],
// ['name' => 'Peter', 'age' => 25],
// ]
```
此时,$filtered 变量中的元素只包含 age 大于 18 且 name 不等于 Mary 的元素。