如果字符串包含任何字符,则从数组中删除元素。例如,下面是实际的数组。
array(1390) {
[0]=>
string(9) "Rs.52.68""
[1]=>
string(20) ""php code generator""
[2]=>
string(9) ""Rs.1.29""
[3]=>
string(21) ""php codes for login""
[4]=>
string(10) ""Rs.70.23""
}
我需要数组删除所有以RS.
预期结果
array(1390) {
[0]=>
string(20) ""php code generator""
[1]=>
string(21) ""php codes for login""
}
到目前为止我尝试了什么:
foreach($arr as $ll)
{
if (strpos($ll,'RS.') !== false) {
echo 'unwanted element';
}
从上面的代码中我如何从数组中删除不需要的元素。
答案 0 :(得分:4)
您可以在$key
循环中获取foreach
并在您的阵列上使用unset()
:
foreach ($arr as $key => $ll) {
if (strpos($ll,'RS.') !== false) {
unset($arr[$key]);
}
}
请注意,由于“RS”永远不会出现,因此不会删除任何商品。只有“Rs”。
答案 1 :(得分:3)
这听起来像是array_filter
的工作。它允许您指定可以执行任何您喜欢的测试的回调函数。如果回调返回true,则返回结果数组中的值。如果返回false,则过滤掉该值。
$arr = array_filter($arr,
function($item) {
return strpos($item, 'Rs.') === false;
});
答案 2 :(得分:0)
Rs与RS不同,您希望使用stripos
而非strpos
进行非区分大小写检查
foreach($arr as $key => $ll)
{
if (stripos($ll,'RS.') !== false) {
unset($arr[$key]);
}
}
或使用arrayfilter
指出