2012-04-03 5 views
7

Mam tablicę zbudowaną na podstawie adresu URL strony internetowej.Usuń element z tablicy, jeśli wartość pozycji zawiera szukany ciąg znaków

Jeśli pozycja w tej tablicy zawiera znak? symbol (symbol znaku zapytania), a następnie chcę usunąć ten element z tablicy.

$array = 'news','artical','?mailchimp=1'; 

Jak mogę to zrobić? Widziałem wiele przykładów, w których szukany ciąg jest wartością całkowitą, ale nie jest tam, gdzie jest to tylko jedna postać lub tylko część wartości.

Dzięki

Odpowiedz

10
foreach($array as $key => $one) { 
    if(strpos($one, '?') !== false) 
     unset($array[$key]); 
} 
+0

+1, ale proponuję zrobić jak mówi instrukcja i zamiast używać strpos. –

+0

Masz rację. Zaktualizowałem odpowiedź: –

+0

@SoaicaMircea Czyści wartość przedmiotu, ale nie usuwa go z tablicy? – Nicekiwi

4

Użyj zamknięcie ...

$array = array_filter($array, function($value){ 
    if (strstr($value, '?') !== false) 
    { 
     return false; 
    } 
    return true; 
}); 
+0

Jeśli używasz> = PHP 5.3. –

Powiązane problemy