채택완료

in_array 뒤에 문자 정규표현식 찾기

2019-09-26 (목) 15:49:31 3,113

in_array를 이용하여 연관배열 중에 값에서 검색하려고 합니다. 

<코드>

가 => ZTYABC

나 => KEKDABC

다 => DKDBC

라 => DKEAC

마 => DKWABC

$array_s = "/ABC/";
if (in_array($array_s, $code)) {
     echo "존재합니다.";
}

---결과적으로 가,나,마를 찾고 싶습니다. 위에 같이 하니, 찾지 못해 어떤 정규표현식을 사용해야지 ABC로 끝나는 값만 찾을 수 있나요?--------- 

|

답변 4개

채택된 답변
+20 포인트
2019-09-26 (목) 16:10:06

$code = array(가 => 'ZTYABC',  나 => 'KEKDABC',  다 => 'DKDBC',  라 => 'DKEAC', 마 => 'DKWABC');

$array_s = "/ABC/";
foreach($code as $k => $val){
    if(preg_match($array_s, $val)) {
        echo $k.'<br/>';
    }
}

정규식의 경우 preg_match를 써야하네요..

http://tcpschool.com/php/php_regularExpression_basic

2019-10-18 (금) 14:28:36

감사합니다^^

in_array 를 사용하는 것은 사용법이 맞지 않고, 정규식을 사용해야 합니다.

아래 처럼 하시는게 간단합니다.

Copy
$found = preg_grep('/ABC/', $array);

/*

$found = Array
(
    [가] => ZTYABC
    [나] => KEKDABC
    [마] => DKWABC
)

*/
2019-09-26 (목) 16:11:07

foreach($array as $k => $v) {
    if(strpos($v, "ABC") > -1) {
        echo $k;
    }
}

in_array는 굳이 안 쓰셔도 될 듯합니다.

답변을 작성하려면 로그인이 필요합니다.