在PHP劈裂一个字符串作为一个数组 [英] spliting a string in php as a array

查看:95
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆