Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将逗号分隔列表中的值与另一个逗号分隔列表中的其他值删除_Php_Arrays_String_Compare_Array Difference - Fatal编程技术网

Php 将逗号分隔列表中的值与另一个逗号分隔列表中的其他值删除

Php 将逗号分隔列表中的值与另一个逗号分隔列表中的其他值删除,php,arrays,string,compare,array-difference,Php,Arrays,String,Compare,Array Difference,如何将逗号分隔列表中的值从另一个逗号分隔列表中的其他值中删除 我有2个阵列: $users_list = '1, 2, 3'; $users_list_2 = '1, 2'; 我希望得到最终结果: $final_users_list = '1,2'; 我用 $final_users_list = array_diff($users_list, $users_list_2); 但结果是空的 我举一个例子: 首先,$users\u list和$users\u list\u 2不是数组。它

如何将逗号分隔列表中的值从另一个逗号分隔列表中的其他值中删除

我有2个阵列:

$users_list = '1, 2, 3';

$users_list_2  = '1, 2';
我希望得到最终结果:

$final_users_list = '1,2';
我用

$final_users_list = array_diff($users_list, $users_list_2);
但结果是空的

我举一个例子:


首先,
$users\u list
$users\u list\u 2
不是数组。它们是字符串。要制作em数组,您需要通过
分解这些字符串

其次-要查找两个
数组中都存在的元素,请使用
array\u intersect

简化的最终代码为:

$users_list = '1, 2, 3';
$users_list_2  = '1, 2';
$final_users_list = array_intersect(
    explode(',', $users_list), 
    explode(',', $users_list_2)
);
echo'<pre>',print_r($final_users_list),'</pre>';
// or as a string 
echo implode(',', $final_users_list);
'; 回声内爆(“,”,$final\u users\u list);
首先,
$users\u list
$users\u list\u 2
不是数组。它们是字符串。要制作em数组,您需要通过
分解这些字符串

其次-要查找两个
数组中都存在的元素,请使用
array\u intersect

简化的最终代码为:

$users_list = '1, 2, 3';
$users_list_2  = '1, 2';
$final_users_list = array_intersect(
    explode(',', $users_list), 
    explode(',', $users_list_2)
);
echo'<pre>',print_r($final_users_list),'</pre>';
// or as a string 
echo implode(',', $final_users_list);
'; 回声内爆(“,”,$final\u users\u list);
在您的示例中,$users\u list和$users\u list\u 2是字符串而不是数组。array_diff函数无法使用字符串。在array_diff或array_intersect中,必须使用array而不是string。。因此,您必须将字符串转换为正确的数组。。(在重建字符串后)是的,我犯了一个大错误。我以前用逗号分隔的列表转换过两个数组,但我完全弄错了。在您的示例中,$users\u list和$users\u list\u 2不是字符串数组。array_diff函数无法使用字符串。在array_diff或array_intersect中,必须使用array而不是string。。因此,您必须将字符串转换为正确的数组。。(在重建字符串后)是的,我犯了一个大错误。我之前有两个数组在逗号分隔的列表中转换,我完全错了。我之前有两个数组在逗号分隔的列表中转换,我完全错了。你的答案很有魅力。我之前有两个数组,我已经转换成逗号分隔的列表,我完全错了。你的回答很有魅力。
$users_list = '1, 2, 3';
$users_list_array = array_map('trim', explode(',', $users_list));

$users_list_2  = '1, 2';
$users_list_2_array = array_map('trim', explode(',', $users_list_2));

$final_users_list = array_intersect($users_list_array, $users_list_2_array);
echo'<pre>',print_r($final_users_list),'</pre>';
echo implode(',', $final_users_list);