- array_map: documentation ( source)
- array_combine: documentation ( source)
- print_r: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$str = "id:5918351498722606 sub:001 dlvrd:001 submit date:1410311037 done date:1410311038
stat:DELIVRD err:000 text:New HTTP Test TxtN";
$pattern = '/([^:]+):([A-Z]{2,}|\d+|\w+(?: \w+)*)/';
preg_match_all($pattern, $str, $matches);
$res = array_combine((array_map("trim", $matches[1])), $matches[2]);
print_r($res);