php - 获取 Laravel 中两个数组之间的差异

标签 php laravel

$category变量将保存在 tags 中已经可用的值(即标签)。表,或者用户可以在此变量中输入新标签,或两者兼而有之。

以下是带标签的查询,如果标签在 tags 中可用 table :

$TagNames = DB::table('tags')
                    ->whereIn('t_name', $category)                  
                    ->pluck('t_name'); 

TagNames 的输出:

array(2) { [0]=> string(7) "Zamalek" [1]=> string(4) "Ahly" }

以下是$category将保存所有标签的变量,无论它们是用户输入的新标签还是现有标签。

$category = $request->get('catBox');
$category 的输出(带有两个额外的新标签):

array(4) { [0]=> string(7) "Zamalek" [1]=> string(4) "Ahly" [2]=> string(5) "Gouna" [3]=> string(8) "Pyramids" }

问题是:我如何比较两者 arrays并在新数组中仅获取差异(即在这种情况下为“Gouna”和“金字塔”)?

最佳答案

如果您只需要从 $category 中检索差异。

您可以使用 PHP 内置函数 array_diff()功能。

$differenceArray = array_diff($category, $TagNames);

请记住,它不会显示 $TagNames 的差异。

要检索所有差异,您可以检索第一个差异和第二个差异并使用 array_merge()功能将其合并在一起。
$differenceArray1 = array_diff($category, $TagNames);
$differenceArray2 = array_diff($TagNames, $category);

$mergeDifference = array_merge($differenceArray1, $differenceArray2);

关于php - 获取 Laravel 中两个数组之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57423351/

相关文章:

javascript - 如何使用 javascript 在 session 中传递当前 url

php - 脚本中出现意外的 ';'.. 但是当我删除 T_STRING 错误时

php - 在 PHP5 的 _destruct 中自动取消设置所有类变量

PHP 添加 mysql-results double 到数组。

php - 使用表达式或 jQuery 更改 Laravel Blade 中的 div 宽度

javascript - 单击时显示表单并显示输入框的值

php - 如何使用 array_unique 从多个数组中获取唯一值?

php - Laravel UUID 生成

php - 'mysqldump' 未被识别为内部或外部命令

javascript - 通过 Ajax 将页面加载到 div 返回错误