我有以下数组名为$ submissions:
Array ( [0] => 342 [1] => 343 [2] => 344 [3] => 345 )
然后我有一个字符串:
$in_both = 342,344;
然后我使用此代码从$ submissions中删除$ in_both中的任何数字:
if(($key = array_search($in_both, $submissions)) !== false) {
unset($submissions[$key]);
}
问题是这只适用于第一个号码。
如何从数组中删除变量$ in_both中的所有数字?
谢谢
答案 0 :(得分:2)
由于in_both
是一个字符串,您需要将其转换为数组:
$in_both_arr = explode(",",$in_both);
然后你可以比较数组:
$submissions = array_diff($submissions,$in_both_arr);
请参阅documentation。
答案 1 :(得分:1)
试试这个:
$submissions = Array( 342, 343, 344, 345 );
$in_both = '342,344';
$needles = explode(',', $in_both);
foreach ($needles as $needle) {
while (($key = array_search($needle, $submissions)) !== false) {
unset($submissions[$key]);
}
}
foreach内部的while保证将删除数组中每个数字的出现。
答案 2 :(得分:0)
尝试:
$submissions = array(342, 343, 344, 355);
$in_both = '342,344';
foreach ( explode(',', $in_both) as $value ) {
if(($key = array_search($value, $submissions)) !== false) {
unset($submissions[$key]);
}
}
答案 3 :(得分:0)
你必须使用expolde
函数和“,”分隔符,然后循环遍历由explode
创建的数组
$in_both = "342,344";
$in_both_arr = explode(",",$in_both);
foreach($in_both_arr as $val)
if(($key = array_search($val, $submissions)) !== false) {
unset($submissions[$key]);
}
}