2012-01-11 2 views
15

난 임의의 이름으로 입력을 생성하는 섹션이있는 html 양식이 있습니다.

각 입력 이름은 처음에는 텍스트 "book"으로 끝 부분에는 임의의 텍스트로 생성됩니다.

<input type="text" name="book_4552f" /> 
<input type="text" name="book_3507p" /> 
<input type="text" name="book_8031b" /> 

"book"이라는 텍스트로 시작하는 $ _POST 변수를 모두 얻으려면 어떻게해야합니까?

답변

24

다음은 POST 문자열로 시작하는지 확인 strpos()를 사용 book_

foreach($_POST as $key => $value) { 
    if (strpos($key, 'book_') === 0) { 
     // value starts with book_ 
    } 
} 
+0

감사합니다 !!!!!!!!!!!!! – supercoolville

4
foreach($_POST as $key => $value) { 
    if(preg_match('@^[email protected]', $key)) { 
    $books[$key] = $value; 
    } 
} 
+0

정말요? 누군가 이걸 엎어 버렸어? 설명해 주겠다고? – ceejayoz

+0

이것은 downvoted해서는 안됩니다 ... –

+0

statment if (preg_match ('@^book_ @', $ key)) – ddjikic

1

여러 possiblities

이 있습니다

첫째 : (분할 키)

$result = array(); 
    foreach($_POST AS $k=>$v) { 
     //Explode k (book_*) into an array with max 2 values 
     $k_array = explode("_", $k, 2); 
     if(isset($k_array[0]) && $k_array[0] == "book") { 
      $result[$k] = $v; 
     } 
    } 

또는과 위와 같이 preg_match를 실행하면되지만, 마지막 부분 k = 예 book_8031b 그냥 8031b

$result = array(); 
foreach($_POST AS $k=>$v) { 
    if(preg_match("/^book_(.*)$/", $k, $matches)) { 
     $result[$matches[1]] = $v; 
    } 
} 
관련 문제