Mur*_*dia 2 php arrays laravel-5.4
我正在使用 arra_diff() 删除任何匹配的元素。但返回的结果包含key和value。我只对值感兴趣,对键不感兴趣。
array 1:
[5,7,11,14,15,22,23,24]
array 2:
[19,7]
Result (I dont like this):
{"0":5,"2":11,"3":14,"4":15,"5":22,"6":23,"7":24}
I need:
[5,11,14,15,22,23,24]
Run Code Online (Sandbox Code Playgroud)
$array_1 = query->get()->pluck('id')->toArray();
$array_2 = query->get()->pluck('id')->toArray();
$result = array_diff($array_1, $array_2);
return $result
Run Code Online (Sandbox Code Playgroud)
每个 Laravel 查询都会在结果中返回一个Laravel Collection。
正如Laravel文档所说,您有一个 diff 方法可以提供帮助。
diff 方法根据集合的值将集合与另一个集合或普通 PHP 数组进行比较。此方法将返回原始集合中不存在于给定集合中的值。
所以在你的情况下你只需要这样做:
$array_1 = $query->get()->pluck('id');
$array_2 = $query->get()->pluck('id');
$result = $array_2->diff($array_1);
return $result->values();
Run Code Online (Sandbox Code Playgroud)
结果我们将使用另一种方法值来获取集合的值...