这个意思?$s = '4|15124680000*2012-10-27 13:35:34^收到[$$]1394546000*2012-10-18 11:47:27^你[$$]13945460000*2012-10-18 11:46:58^收到[$$....';
preg_match_all('/(\d+(?!\|)).([\d :-]+).([^[]+)/is', $s, $r);
print_r($r);
Array
(
[0] => Array
(
[0] => 15124680000*2012-10-27 13:35:34^收到
[1] => 1394546000*2012-10-18 11:47:27^你
[2] => 13945460000*2012-10-18 11:46:58^收到
) [1] => Array
(
[0] => 15124680000
[1] => 1394546000
[2] => 13945460000
) [2] => Array
(
[0] => 2012-10-27 13:35:34
[1] => 2012-10-18 11:47:27
[2] => 2012-10-18 11:46:58
) [3] => Array
(
[0] => 收到
[1] => 你
[2] => 收到
))
preg_match_all('/(\d+(?!\|)).([\d :-]+).([^[]+)/is', $s, $r);
print_r($r);
Array
(
[0] => Array
(
[0] => 15124680000*2012-10-27 13:35:34^收到
[1] => 1394546000*2012-10-18 11:47:27^你
[2] => 13945460000*2012-10-18 11:46:58^收到
) [1] => Array
(
[0] => 15124680000
[1] => 1394546000
[2] => 13945460000
) [2] => Array
(
[0] => 2012-10-27 13:35:34
[1] => 2012-10-18 11:47:27
[2] => 2012-10-18 11:46:58
) [3] => Array
(
[0] => 收到
[1] => 你
[2] => 收到
))
其实你应该很容易发现问题的for($i=0; $i<count($r[0]); $i++) {
echo "{$r[2][$i]}\t{$r[1][$i]}\t{$r[3][$i]}\n";
}
谢谢你,打印出来的都是Array啊