数组diff仅适用于数组中的第一个字


Array diff only working with first word in array

使用array_diff过滤我的数组,并确保如果单词在过滤器中,它将不会包含在回声中。现在,如果我用"test1,test4"替换array2,输出将是"test2,test3",这是正确的,但如果我用应该输出"test1、test3"的"test2、test4"代替array2,我得到的是"test1和test2,test 3"的输出,所以它不会过滤掉它。我知道这可能是一个非常简单的修复,我只是忽略了它。我会在下面发布代码。

<?php
$array1 = "test1, test2, test3";
$array2 = "test2, test4";
$myArray = explode(',', $array1);
$myArray2 = explode(',', $array2);
$unique=array_diff($myArray, $myArray2);
echo implode(',', $unique); 
?>

您需要将trimarray_map一起使用,如下代码所示。

$array1 = "test1, test2, test3";
$array2 = "test2, test4";
$myArray = array_map('trim', explode(',', $array1));
$myArray2 = array_map('trim', explode(',', $array2));
$unique=array_diff($myArray, $myArray2);
echo implode(',', $unique); 

explode,SPACE 一起使用

$myArray = explode(', ', $array1);
$myArray2 = explode(', ', $array2);