PHP взорвать разделитель с числами? - PullRequest
2 голосов
/ 21 сентября 2011

Итак, я пытаюсь взорвать строку, содержащую список ответов.

Пример: ОТВЕТЫ: ​​1. Гребень. 2. Большой палец. 3. Могила (катакомба). 4. Чрево 5. Крошка. 6. Бомба. 7. Онемение. 8. Апломб. 9. Поддайся.

Есть ли способ взорвать это, чтобы получилось так:

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

Хитрость заключается в том, что я хочу разбить эту строку, чтобы каждый ответ можно было разделить после числа.

Таким образом, если ответ состоит из 1 символа или 10 слов, он будет разбиваться после каждого числа.

Спасибо.

Ответы [ 3 ]

7 голосов
/ 21 сентября 2011

Нет, это невозможно с помощью explode (), но вы можете использовать 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 голосов
/ 21 сентября 2011

Вы, вероятно, хотите использовать preg_split().Что-то вроде:

$answer = preg_split('/\d\./', $answerString);
0 голосов
/ 01 декабря 2016
<?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 />"; 
    } 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...