2011-09-21 6 views
1

그래서 답변 목록이있는 문자열을 분해하려고합니다.PHP는 숫자가있는 구분 기호를 분해합니까?

예 : 답 : 1. 빗. 2. 엄지 손가락. 3. 무덤 (카타콤). 4. 자궁. 5. 부스러기. 6. 폭탄. 7. Numb. 8. 응징. 9. 쓰러지 다.

다음과 같이 나올이 폭발 할 수있는 방법이 있나요 :

$answer = explode("something here", $answerString); 
$answer[1] = 1. Comb. 
$answer[2] = 2. Thumb. 
$answer[3] = 3. 3. Tomb (catacomb). 

까다로운 일이 내가 각각의 대답이 수 후 분리 될 수 있도록이 문자열을 폭발 할 것입니다.

답변이 1 문자 또는 10 단어 인 경우 각 숫자 뒤에 여전히 분할됩니다.

감사합니다.

+2

답변 자체가' "테스트 5. 6. 7."'같은 것을 포함하는 경우 그것을 할 수있는 완벽한 방법은 없습니다. 소스 입력을 더 나은 형식으로 만드는 것이 더 낫다고 생각합니다. –

+0

'$ answer [2] = "3. 무덤 (카타콤 브)을 의미합니까?" (배열 인덱스는 0 대신 1로 시작하고 예제에서는 두 개의'3.'가 있음을주의하십시오) – CanSpice

답변

7

아니,이) (폭발과 함께 할 수 없습니다,하지만 당신은 당신은 아마 대신 preg_split()를 사용하려면 preg_split()

http://sandbox.phpcode.eu/g/4b041/1

<?php 
$str = '1. Comb. 2. Thumb. 3. Tomb (catacomb). 4. Womb. 5. Crumb. 6. Bomb. 7. Numb. 8. Aplomb. 9. Succumb'; 
$exploded = preg_split('/[0-9]+\./', $str); 
foreach($exploded as $index => $answer){ 
    if (!empty($answer)){ 
     echo $index.": ".$answer."<br />"; 
    } 
} 
?> 
4

사용할 수 있습니다. 뭔가 같이 :

$answer = preg_split('/\d\./', $answerString); 
0
<?php 
$org_string = "1. Comb. 2. Thumb. 3. Tomb (catacomb). 4. Womb. 5. Crumb. 6. Bomb. 7. Numb. 8. Aplomb. 9. Succumb"; 
$new_string = str_replace("b. ", "b. ,", $org_string); 
$final_string = str_replace("b). ", "b). ,", $new_string); 
$exploded = explode(" ,",$final_string); 
foreach($exploded as $answer){ 

     echo $answer."<br />"; 
    } 
?> 
관련 문제