使用 array_diff() 后,仅获取 Laravel Php 中数组的原始值

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)

Kri*_*ofe 6

您可以使用 array_values 来获取它。尝试这个,

array_values($result);
Run Code Online (Sandbox Code Playgroud)


Max*_*epl 5

每个 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)

结果我们将使用另一种方法来获取集合的值...