如何在Php中将字符串拆分为两个数组

赛义德

我有一个这样的数组:

$array='{b_price,9500,b_discount,10,mainPrice,95000,total,95000,title,obj1},{b_price,1500,b_discount,15,mainPrice,15000,total,22500,title,obj2}'

我想首先拆分为两个数组,如下所示:

$array[0]={b_price,9500,b_discount,10,mainPrice,95000,total,95000,title,obj1}

$array[1]={b_price,1500,b_discount,15,mainPrice,15000,total,22500,title,obj2}

我用这段代码更改了每个数组

foreach ($b as $k => $m) {

                    if ($k % 2 == 0) {
                        $even[]= $m;
                    }
                    else {
                        $odd[] = $m;
                    }
                }

    $ff=array_combine($even,$odd); 

我想要这样的输出变化

 Array( Array[0] =>  ([b_price] => 9500 [b_discount] => 10 [mainPrice] => 95000 [total] => 95000 [title] =>obj1)
Array[1] => ([b_price] => 1500 [b_discount] => 15 [mainPrice] => 15000 [total] => 22500 [title] => obj2))
罗曼·佩雷克雷斯特

两种做法:

-- 用途explodearray_map作用:

$str = '{b_price,9500,b_discount,10,mainPrice,95000,total,95000,title,obj1},{b_price,1500,b_discount,15,mainPrice,15000,total,22500,title,obj2}';

$result = array_map(function($v){
    $r = [];
    $arr = explode(',', trim($v, '{}'));
    foreach ($arr as $k => $v) {
        if (!($k % 2)) $r[$v] = $arr[$k+1];
    }
    return $r;
}, explode('},{', $str));

print_r($result);

-- 使用附加preg_match_allarray_combine功能:

$str = '{b_price,9500,b_discount,10,mainPrice,95000,total,95000,title,obj1},{b_price,1500,b_discount,15,mainPrice,15000,total,22500,title,obj2}';

$result = array_map(function($v){
    preg_match_all('/([^,]+),([^,]+),?/', trim($v, '{}'), $m);
    return array_combine($m[1], $m[2]);
}, explode('},{', $str));

print_r($result);

输出:

Array
(
    [0] => Array
        (
            [b_price] => 9500
            [b_discount] => 10
            [mainPrice] => 95000
            [total] => 95000
            [title] => obj1
        )

    [1] => Array
        (
            [b_price] => 1500
            [b_discount] => 15
            [mainPrice] => 15000
            [total] => 22500
            [title] => obj2
        )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#中将字符串拆分为两个单独的变量

如何在bash中将字符串拆分为数组

如何在PHP中将逗号分隔的字符串拆分为数组?

如何在JavaScript中将数组拆分为两个数组?

需要将Java字符串拆分为两个数组

关于如何在Swift中将字符串拆分为所需字符串数组的问题

如何在 TypeScript 中将一个字符串拆分为两个变量?

如何在PHP中将单词字符串拆分为单独的字符串变量?

在PHP中将字符串拆分为两行

如何在Snowflake中将字符串拆分为字符?

如何在Java中将字符串从3维数组拆分为新的2维数组

如何在BIRT中将字符串拆分为字符数组?

如何在 Spark 中将字符串拆分为字符数组?

如何将大字符串拆分为两个不同的数组?

如何在bash中将字符串拆分为参数?

如何在bash中将字符串拆分为列

如何在bash中将字符串拆分为多行

如何在 Python 中将字符串拆分为列表?

如何在MATLAB中将字符串拆分为字母?

如何在Java中将字符串拆分为列

如何在MongoDB聚合框架中将字符串拆分为字母数组?

如何在Ruby中将字符串拆分为嵌套数组中的许多元素

如何在vba中将字符串拆分为二维数组?

如何在Kotlin中将没有空格的字符串拆分为整数数组?

如何在vb.net中将字符串拆分为列表/数组

如何在VB.net中将字符串拆分为输入的长度字符串数组

如何在python中将字符串拆分为列表并将两个已知标记合并为一个?

如何在 Python 中将列表中的一个字符串元素拆分为两个?

如何使用 Pandas 在 Python 中将两个字符串拆分为不同的列?