在PHP劈裂一个字符串作为一个数组 [英] spliting a string in php as a array
本文介绍了在PHP劈裂一个字符串作为一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个字符串
PID1 + 2 +价格1 + 20 + qty1 + 2 + PID2 + 3 + price2 + 20 + qty2 + 1 +
这是一个结果进行一些处理...
我需要创建数组,它应该是这样
pid1-大于2
price1-→20
qty1-→2(第一阵列)pid2-→2
price2-→20
qty2-→2(第二阵列)
我试图使用爆炸而没有成真...
谢谢
上面的字符串被$ C $ C创建
$ a = var_export($ _ REQUEST);
的foreach($ _REQUEST为$关键=> $值)
{
$ a = $关键。 +。 $值。 +;
回声$一个;
}
解决方案
试试这个:
$海峡=PID1 + 2 +价格1 + 20 + qty1 + 2 + PID2 + 3 + price2 + 20 + qty2 + 1 +;preg_match_all('/(P< VAR> \\ W +)\\ +(P<&数字GT; \\ D +)/',$海峡,$ macth);
$解析度= array_chunk(array_combine($ macth ['变种'],$ macth ['数字']); 3,TRUE);回声< pre>中;
的print_r($水库);
输出:
阵列
(
[0] =>排列
(
[PID1] => 2
[价格1] => 20
[qty1] => 2
) [1] =>排列
(
[PID2] => 3
[price2] => 20
[qty2] => 1
))
I have an string
pid1+2+price1+20+qty1+2+pid2+3+price2+20+qty2+1+
which is an outcome some processing ... I need to create array which should be like
pid1->2
price1->20
qty1->2(first array)
pid2->2
price2->20
qty2->2(Second array)
I tried using explode which nothing comes true... thanks
the above string has been created by code
$a = var_export($_REQUEST);
foreach ($_REQUEST as $key=>$value)
{
$a = $key . "+" . $value . "+";
echo $a;
}
解决方案
Try this :
$str = "pid1+2+price1+20+qty1+2+pid2+3+price2+20+qty2+1+";
preg_match_all('/(?P<var>\w+)\+(?P<digit>\d+)/',$str,$macth);
$res = array_chunk(array_combine($macth['var'],$macth['digit']),3,TRUE);
echo "<pre>";
print_r($res);
Output :
Array
(
[0] => Array
(
[pid1] => 2
[price1] => 20
[qty1] => 2
)
[1] => Array
(
[pid2] => 3
[price2] => 20
[qty2] => 1
)
)
这篇关于在PHP劈裂一个字符串作为一个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文