Programowanie w języku PHP » FAQ

Przeszukiwanie tablic jednowymiarowych za pomocą wyrażeń regularnych

  • 2011-07-18 15:38
  • 0 komentarzy
  • 2568 odsłon
  • Oceń ten tekst jako pierwszy
Funkcja udostępniana do przeszukiwania tablic w PHP to array_search. Umożliwia ona wyszukiwanie wrażenia, które jest równe wyrażeniu w tablicy i pokazuje tylko pierwszy znaleziony wynik.

Co jeśli chcemy wyszukać wynik dzięki wyrażeniom regularnym i pragniemy otrzymać wszystkie wyniki?!
Z pomocą przychodzi ta prosta funkcja:


function array_search2($regex,$array){
 
 
        foreach($array as $key => $value){
                IF(preg_match($regex,$value)){$result[] = $key;}
        }
 
        IF(!empty($result)){
 
                return $result;
 
        }else{
 
                return false;
 
        }
 
}


Przykład użycia:

$a = Array('Adam','b','Lu lu','Lee','Adam','Adam' =>'Ala','Ewa' => 'Adam','Felek','Liza');
 
IF (!array_search2("/^(Adam|Felek|Liza)$/",$a)){echo "Brak wyników";}
else
{
        $b = array_search2("/^(Adam|Felek|Liza)$/",$a);
 
                foreach($b as $k => $v){
 
                echo "$a[$v]<br/>";
 
 
                }
 
}