2017-05-10 183 views
1

我需要你们帮助解决这个小小的代码。这个想法是从$list_str中删除$remove_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

回答

3

你Ç一个使用array_diff,

array_diff($list_arr, $remove_arr); 
+0

这个想法看起来很简单。试图在我的代码中解决它。会让你知道:) – icecub

+1

哇,这实际上就像一个魅力!非常感谢!我会尽快回答,哈哈 – icecub