从基于另一个数组的数组中删除值

Remove values from array based on another array

我需要你们的一点帮助来修复这个小代码。这个想法是从 $list_str 中删除 $remove_str 内的任何数字。如您所见,我已经尝试通过将两个字符串都转换为数组并简单地循环遍历列表数组来搜索删除数组中的值并在匹配时将其删除来解决问题。然而,结果却出乎我的意料。我已经研究了一段时间了,但我的脑袋一直在旋转,想看看解决方案。

<?php

$remove_str = '5,6,8,56,195';
$list_str = '1,3,6,9,34,150,195,213';

$remove_arr = explode(',', $remove_str);
$list_arr = explode(',', $list_str);

foreach($list_arr as $value){
    $position = array_search($value, $remove_arr);

    if($position !== false){
        unset($list_arr[$position]);
    } else {
        continue;
    }
}

$result = implode(',', $list_arr);

echo $result;

?>

结果:

1,6,9,150,195,213

预期结果:

1,3,9,34,150,213

您可以使用array_diff,

array_diff($list_arr, $remove_arr);