$return 返回值为
9||50
||1|#|2013-09-09 00:00:22||13814002394||内容
||1|#|2013-09-09 00:00:19||13814002394||内容
||1|#|2013-09-07 00:51:57||15920531400||内容
||1|#|2013-09-06 22:21:02||15920531400||内容
||1|#|2013-09-06 22:13:14||15920531400||内容
||1|#|2013-09-06 22:07:42||15920531400||内容
||1|#|2013-09-05 14:00:02||15920531400||内容
||1|#|2013-09-05 12:10:13||15920531400||内容
||1|#|2013-09-05 12:01:27||15920531400||内容
||1|#|//这是整理过的是有规则的字符串(不是数组)
我变成可循环的数组 其中时间,号码,内容是变量!!!!!PHP字符串return
9||50
||1|#|2013-09-09 00:00:22||13814002394||内容
||1|#|2013-09-09 00:00:19||13814002394||内容
||1|#|2013-09-07 00:51:57||15920531400||内容
||1|#|2013-09-06 22:21:02||15920531400||内容
||1|#|2013-09-06 22:13:14||15920531400||内容
||1|#|2013-09-06 22:07:42||15920531400||内容
||1|#|2013-09-05 14:00:02||15920531400||内容
||1|#|2013-09-05 12:10:13||15920531400||内容
||1|#|2013-09-05 12:01:27||15920531400||内容
||1|#|//这是整理过的是有规则的字符串(不是数组)
我变成可循环的数组 其中时间,号码,内容是变量!!!!!PHP字符串return
<li>2013-09-09 00:00:22 13814002394 内容</li>
<li>2013-09-09 00:00:22 13814002394 内容</li>
这样的循环方式!
$str='9||50
||1|#|2013-09-09 00:00:22||13814002394||内容
||1|#|2013-09-09 00:00:19||13814002394||内容
||1|#|2013-09-07 00:51:57||15920531400||内容
||1|#|2013-09-06 22:21:02||15920531400||内容
||1|#|2013-09-06 22:13:14||15920531400||内容
||1|#|2013-09-06 22:07:42||15920531400||内容
||1|#|2013-09-05 14:00:02||15920531400||内容
||1|#|2013-09-05 12:10:13||15920531400||内容
||1|#|2013-09-05 12:01:27||15920531400||内容
||1|#|';
$new_str=str_replace('||','|',$str);
$arr=explode('|1|#|',$new_str);
$new_arr=array();
foreach ($arr as $value)
{
echo $value;
if (substr_count($value,'|')>1)
{
$new_arr[]=explode('|',$value);
}
}
echo "<pre>";
print_R($new_arr);
echo "</pre>";
?>
简单的写了下,凑合着能,不知道有没有什么更好的办法
(
[0] => Array
(
[0] => 2013-09-09 00:00:22
[1] => 13814002394
[2] => 内容 ) [1] => Array
(
[0] => 2013-09-09 00:00:19
[1] => 13814002394
[2] => 内容 ) [2] => Array
(
[0] => 2013-09-07 00:51:57
[1] => 15920531400
[2] => 内容 ) [3] => Array
(
[0] => 2013-09-06 22:21:02
[1] => 15920531400
[2] => 内容
)
)这是打印出来的效果
9||50
||1|#|2013-09-09 00:00:22||13814002394||内容
||1|#|2013-09-09 00:00:19||13814002394||内容
||1|#|2013-09-07 00:51:57||15920531400||内容
||1|#|2013-09-06 22:21:02||15920531400||内容
||1|#|2013-09-06 22:13:14||15920531400||内容
||1|#|2013-09-06 22:07:42||15920531400||内容
||1|#|2013-09-05 14:00:02||15920531400||内容
||1|#|2013-09-05 12:10:13||15920531400||内容
||1|#|2013-09-05 12:01:27||15920531400||内容
||1|#|
TXT;
preg_match_all('/\|([^|]+)\|\|([^|]+)\|\|(.*)/m', $s, $r);
print_r($r);Array
(
[1] => Array
(
[0] => 2013-09-09 00:00:22
[1] => 2013-09-09 00:00:19
[2] => 2013-09-07 00:51:57
[3] => 2013-09-06 22:21:02
[4] => 2013-09-06 22:13:14
[5] => 2013-09-06 22:07:42
[6] => 2013-09-05 14:00:02
[7] => 2013-09-05 12:10:13
[8] => 2013-09-05 12:01:27
) [2] => Array
(
[0] => 13814002394
[1] => 13814002394
[2] => 15920531400
[3] => 15920531400
[4] => 15920531400
[5] => 15920531400
[6] => 15920531400
[7] => 15920531400
[8] => 15920531400
) [3] => Array
(
[0] => 内容
[1] => 内容
[2] => 内容
[3] => 内容
[4] => 内容
[5] => 内容
[6] => 内容
[7] => 内容
[8] => 内容
)
)已经可以用了
如果想把对应的放在一起就$ar = array_map(function($a,$b,$c){return array($a,$b,$c);}, $r[1], $r[2], $r[3]);
print_r($ar);Array
(
[0] => Array
(
[0] => 2013-09-09 00:00:22
[1] => 13814002394
[2] => 内容
) [1] => Array
(
[0] => 2013-09-09 00:00:19
[1] => 13814002394
[2] => 内容
) [2] => Array
(
[0] => 2013-09-07 00:51:57
[1] => 15920531400
[2] => 内容
) [3] => Array
(
[0] => 2013-09-06 22:21:02
[1] => 15920531400
[2] => 内容
) [4] => Array
(
[0] => 2013-09-06 22:13:14
[1] => 15920531400
[2] => 内容
) [5] => Array
(
[0] => 2013-09-06 22:07:42
[1] => 15920531400
[2] => 内容
) [6] => Array
(
[0] => 2013-09-05 14:00:02
[1] => 15920531400
[2] => 内容
) [7] => Array
(
[0] => 2013-09-05 12:10:13
[1] => 15920531400
[2] => 内容
) [8] => Array
(
[0] => 2013-09-05 12:01:27
[1] => 15920531400
[2] => 内容
))还可以写作$r[0] = function(){return func_get_args();};
$ar = call_user_func_array('array_map', $r);
更一般些
preg_replace('/^\|\|1\|#\|([^\|]+)\|\|([^\|]+)\|\|(.+)$', '<li>$1 $2 $3</li>', $return);可能要再去掉首尾行