>我有一个包含许多记录的字符串,我想在 || 之后拆分每条记录,并且每条记录再次用 ~ 符号分隔。当我尝试这些时,我得到的是唯一的第一条记录而不是所有记录。你能帮我解决这个问题吗
$data="promo~919441188673,9959045~2015-03-16~4:39 pm~ arey sollu shobhan gaa neeku pani ledaaa~Invalid Number||promo~919959095474~2015-03-16~4:40 pm~ Hi ra...how are you......~Message Sent||promo~919441188673~2015-03-13~3:51 pm~ Hi,This is from bhash sms ,and this is testing sorry for the ~Delivered";
list($someCode)=explode('||', $data);
//var_dump($data);
//var_dump($someCode);
list($type,$num,$date,$time,$msg,$status)=explode('~', $someCode);
var_dump($type);
var_dump($num);
var_dump($date);
var_dump($time);
var_dump($msg);
var_dump($status);
这应该适合您:
(在这里,我浏览了每条记录,其中包含explode()
得到的array_map()
。在此之后,我返回一个带有 array_combine()
) 的组合数组
<?php
$data = "promo~919441188673,9959045~2015-03-16~4:39 pm~ arey sollu shobhan gaa neeku pani ledaaa~Invalid Number||promo~919959095474~2015-03-16~4:40 pm~ Hi ra...how are you......~Message Sent||promo~919441188673~2015-03-13~3:51 pm~ Hi,This is from bhash sms ,and this is testing sorry for the ~Delivered";
$someCode = array_map(function($v){
return array_combine(["type", "num", "date", "time", "msg", "status"], explode("~", $v));
}, explode('||', $data));
print_r($someCode);
?>
输出:
Array
(
[0] => Array
(
[type] => promo
[num] => 919441188673,9959045
[date] => 2015-03-16
[time] => 4:39 pm
[msg] => arey sollu shobhan gaa neeku pani ledaaa
[status] => Invalid Number
)
[1] => Array
(
[type] => promo
[num] => 919959095474
[date] => 2015-03-16
[time] => 4:40 pm
[msg] => Hi ra...how are you......
[status] => Message Sent
)
[2] => Array
(
[type] => promo
[num] => 919441188673
[date] => 2015-03-13
[time] => 3:51 pm
[msg] => Hi,This is from bhash sms ,and this is testing sorry for the
[status] => Delivered
)
)
在第一次explode
之后,你会得到一个数组,而不是一个字符串,所以你需要迭代它并分解它的值:
list($someCode)=explode('||', $data);
foreach($someCode as $v){
list($type,$num,$date,$time,$msg,$status)=explode('~', $v);
var_dump($type);
var_dump($num);
var_dump($date);
var_dump($time);
var_dump($msg);
var_dump($status)
}
使用爆炸函数,您可以获得您想要的东西。 使用爆炸方式
$pizza = "piece1||piece2||piece3||piece4||piece5||piece6";
$pieces = explode("||", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2