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

时间:2017-05-10 02:05:03

标签: 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;

?>

结果:

  

1,6,9,150,195,213

预期结果:

  

1,3,9,34,150,213

1 个答案:

答案 0 :(得分:5)

您可以使用array_diff,

array_diff($list_arr, $remove_arr);