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

ice*_*cub 1 php arrays string array-difference

我需要你们的一点帮助来修复此小代码。我们的想法是删除其内部的任何数字$remove_str$list_str。如您所见,我已经尝试通过将两个字符串都转换为数组来解决问题,并简单地遍历列表数组以在remove数组中搜索值,如果匹配则将其删除。但是,结果与我预期的完全不同。我一直在玩弄它一段时间,但是我的头在转动,以至于无法找到解决方案。

<?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;

?>
Run Code Online (Sandbox Code Playgroud)

结果:

1,6,9,150,195,213

预期结果:

1,3,9,34,150,213

Kri*_*ofe 5

您可以使用array_diff,

array_diff($list_arr, $remove_arr);
Run Code Online (Sandbox Code Playgroud)