fork download
  1. <?php
  2. $str = <<<EOS
  3. 05start
  4. いちご
  5. バナナ
  6. うめ
  7. もも
  8. 05finish
  9. 12start
  10. ごはん
  11. おそば
  12. 12finish
  13. 15start
  14. わかめ
  15. ひじき
  16. めかぶ
  17. 15finish
  18. 18start
  19. コーヒー
  20. ココア
  21. 18finish
  22. EOS;
  23.  
  24. $str = str_replace(array("\r\n", "\r"), "\n", $str);
  25.  
  26. preg_match_all('/^(\d{2})start\n([\S\s]*)\n\1finish$/m',$str,$matches);
  27.  
  28. $data = array();
  29.  
  30. for($i = 0; $i < count($matches[1]); $i++) {
  31. $key = $matches[1][$i];
  32. $value = str_replace("\n", ' ', $matches[2][$i]);
  33. $data[$key] = $value;
  34. }
  35. print_r($data);
  36. ?>
  37.  
Success #stdin #stdout 0.01s 82944KB
stdin
Standard input is empty
stdout
Array
(
    [05] => いちご バナナ うめ もも
    [12] => ごはん おそば
    [15] => わかめ ひじき めかぶ
    [18] => コーヒー ココア
)