数组差异仅适用于数组中的第一个单词
Array diff only working with first word in array
使用array_diff过滤我的数组并确保如果这个词在过滤器中,它不会被包含在回显中。现在,如果我用 "test1, test4" 替换 array2,输出将是 "test2, test3" 这是正确的,但是如果我用 "test2, test4" 替换 array2 应该输出 "test1, test3" 我反而得到一个"test1, test2, test3" 的输出,所以它没有过滤掉它。我知道这可能是一个非常简单的修复,我只是忽略了它。我将 post 下面的代码。
<?php
$array1 = "test1, test2, test3";
$array2 = "test2, test4";
$myArray = explode(',', $array1);
$myArray2 = explode(',', $array2);
$unique=array_diff($myArray, $myArray2);
echo implode(',', $unique);
?>
您需要将 trim
与 array_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);
使用array_diff过滤我的数组并确保如果这个词在过滤器中,它不会被包含在回显中。现在,如果我用 "test1, test4" 替换 array2,输出将是 "test2, test3" 这是正确的,但是如果我用 "test2, test4" 替换 array2 应该输出 "test1, test3" 我反而得到一个"test1, test2, test3" 的输出,所以它没有过滤掉它。我知道这可能是一个非常简单的修复,我只是忽略了它。我将 post 下面的代码。
<?php
$array1 = "test1, test2, test3";
$array2 = "test2, test4";
$myArray = explode(',', $array1);
$myArray2 = explode(',', $array2);
$unique=array_diff($myArray, $myArray2);
echo implode(',', $unique);
?>
您需要将 trim
与 array_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);