我有一個從網頁的URL構建的數組。如果項目值包含搜索字符串字符,從數組中刪除項目
如果該數組中的項目包含?符號(問號符號),那麼我想從數組中刪除該項目。
$array = 'news','artical','?mailchimp=1';
我該怎麼辦?我見過很多例子,其中被搜索的字符串是整個值,但不是它只是單個字符或只是值的一部分。
感謝
我有一個從網頁的URL構建的數組。如果項目值包含搜索字符串字符,從數組中刪除項目
如果該數組中的項目包含?符號(問號符號),那麼我想從數組中刪除該項目。
$array = 'news','artical','?mailchimp=1';
我該怎麼辦?我見過很多例子,其中被搜索的字符串是整個值,但不是它只是單個字符或只是值的一部分。
感謝
http://www.php.net/manual/en/function.array-filter.php
function myFilter($string) {
return strpos($string, '?') === false;
}
$newArray = array_filter($array, 'myFilter');
foreach($array as $key => $one) {
if(strpos($one, '?') !== false)
unset($array[$key]);
}
使用閉包...
$array = array_filter($array, function($value){
if (strstr($value, '?') !== false)
{
return false;
}
return true;
});
如果你使用> = PHP 5.3就是。 – 2012-04-03 12:38:58
+1,不過我建議你按照手冊上說,用strpos代替。 – 2012-04-03 12:27:07
你說得對。我已經更新了答案 – 2012-04-03 12:28:28
@SoaicaMircea這會清除項目的值,但dosnt會將其從數組中移除? – Nicekiwi 2012-04-03 12:33:27