gpt4 book ai didi

php - 比较 laravel 中的两个集合数组

转载 作者:行者123 更新时间:2023-12-01 21:43:08 25 4
gpt4 key购买 nike

我正在使用 laravel,我有两个看起来像这样的集合数组:

$collection1 = [
['id' => 1, 'name'=> 'phone', 'quantity' => 1, 'price' => 1200],
['id' => 2, 'name'=> 'tv', 'quantity' => 3, 'price' => 800],
];

$collection2 = [
['id' => 1, 'name'=> 'phone', 'quantity' => 1, 'price' => 1200],
['id' => 2, 'name'=> 'tv', 'quantity' => 3, 'price' => 400],
];

所以我需要通过比较两个集合来知道它们是否相同。如果在某些数组中,其中一个键(或多个键)具有不同的值,则它们将不再是相同的集合,例如在 1 个集合中,第二个项目的价格为 800,另一个集合的 400。有任何 laravel 集合的 native 方法可以做到这一点?,或者我如何使用简单的 php 数组来做到这一点?

最佳答案

laravel 集合有一个名为 diff 的方法,使用这个方法你可以获取集合中给定项目中不存在的项目。这些项目是 $collection2 ,它可以是一个数组或一个集合,所以你可以像这样在这两个集合之间获取不同的项目

$collection1->diff($collection2);

它返回一个 Illuminate\Support\Enumerable 类。你可以通过调用 all() 来获取这些项目:

$collection = collect([1, 2, 3, 4, 5]);

$differentItems = $collection->diff([2, 4, 6, 8]);

$differentItems->all();

// [1, 3, 5]

此代码属于 laravel 文档。 https://laravel.com/docs/7.x/collections#method-diff .最后,您可以将 $differentItems 转换为 bool 值。像这样:

$collection = collect([1, 2, 3, 4, 5]);
$differentItems = $collection->diff([2, 4, 6, 8]);
$differentItems->isEmpty();
// return false

$collection = collect([1, 2, 3, 4, 5]);
$differentItems = $collection->diff($collection);
$differentItems->isEmpty();
// return true

更多链接 https://laravel.com/api/7.x/Illuminate/Support/Collection.html#method_diff https://laravel.com/api/7.x/Illuminate/Support/Enumerable.html

关于php - 比较 laravel 中的两个集合数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61069470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com