📅  最后修改于: 2023-12-03 15:02:38.992000             🧑  作者: Mango
在 Laravel 中,集合是一组有序的值,它们可以是数组、对象、数据库查询结果等等。集合提供了许多实用的方法,用于对其中的元素进行筛选、排序、映射、转换等等操作。
其中,集合的 partition
方法可以将集合分成满足条件的和不满足条件的两个子集合。该方法的函数签名如下:
/**
* Partition the collection into two collections using the given boolean test.
*
* @param callable|mixed $callback
* @return array
*/
public function partition($callback);
其中,参数 $callback
可以是一个回调函数,也可以是一个可以转换为真值或假值的值。如果参数是回调函数,则该函数会对集合中的每一个元素进行调用,返回值为真的元素将被放入结果集的第一个子集合中,返回值为假的元素将被放入结果集的第二个子集合中。如果参数是一个可以转换为真值或假值的值,则集合中的每一个元素都会被与该值进行比较,结果集的第一个子集合将包含所有等于该值的元素,第二个子集合将包含所有不等于该值的元素。
下面是一个使用 partition
方法的例子:
use Illuminate\Support\Collection;
$collection = Collection::make([
['name' => 'John', 'age' => 31],
['name' => 'Jane', 'age' => 25],
['name' => 'Doe', 'age' => 40],
]);
list($young, $old) = $collection->partition(function ($item) {
return $item['age'] < 30;
});
$young->all(); // [['name' => 'Jane', 'age' => 25]]
$old->all(); // [['name' => 'John', 'age' => 31], ['name' => 'Doe', 'age' => 40]]
在上面的例子中,我们将一个包含三个元素的集合根据成员的年龄是否小于 30 来进行分区。最终,我们得到了一个年龄小于 30 的子集合和一个年龄大于等于 30 的子集合。
需要注意的是,partition
方法返回的是一个数组,该数组包含两个子集合。如果你只需要其中的一个子集合,可以使用 PHP 的 list
函数将其赋值到变量中。
以上就是本文介绍的 Laravel 集合分区的内容。使用 partition
方法可以帮助我们在实际开发中更加方便地对集合进行操作。