Php 将逗号分隔列表中的值与另一个逗号分隔列表中的其他值删除
如何将逗号分隔列表中的值从另一个逗号分隔列表中的其他值中删除 我有2个阵列: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不是数组。它
$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);