如何转换字符串";str1:1,str2:2,str33:33&引用;在PHP上创建数组

如何转换字符串";str1:1,str2:2,str33:33&引用;在PHP上创建数组,php,arrays,string,Php,Arrays,String,请告诉我如何将字符串str1:1、str2:2、str33:33…转换为该数组: Array ( [1] => Array ( [mystr] => str1 ) [33] => Array ( [mystr] => str33 ) [2] => Array ( [mystr] =>

请告诉我如何将字符串str1:1、str2:2、str33:33…转换为该数组:

Array
(
    [1] => Array
        (
            [mystr] => str1
        )

    [33] => Array
        (
            [mystr] => str33
        )

    [2] => Array
        (
            [mystr] => str2
        )
)

使用
foreach
方式

说明: 使用逗号运算符分解元素,并将它们作为
foreach
构造的参数传递。现在
explode()
使用
作为分隔符,然后添加第一个分解元素作为值,第二个分解元素作为

foreach(explode(',',$str) as $v)
{
    $v = explode(':',$v);
    $newarr[$v[1]]['mystr']=$v[0];
}
print_r($newarr);


数组映射()

<?php
$newarr = array();
array_map(function ($v) use(&$newarr){ $v = explode(':',$v);$newarr[$v[1]]['mystr']=$v[0]; },explode(',','str1:1,str2:2,str33:33'));
print_r($newarr);
试试这个:

$str = "str1:1,str2:2,str33:33";
$array  =   explode(",",$str);
$newarray = array();
foreach($array as $key=>$value){
    $value  =   explode(":",$value);
    $newarray[$value[1]]['mystr']   =   $value[0];
}
print_r($newarray);
PHP函数将字符串分解为数组使用explode将字符串分解为逗号(,)
,并在每次迭代中再次分解
冒号(:)
符号

选中此项
您能否向我们展示您迄今为止试用过的代码?使用
explode
可以轻松实现。您的代码与9分钟前回答的代码有何不同?:)如果有多个用户试图解决问题,而没有任何可能解决同一个问题,这有什么错吗?没有,帮助没有错,但是你已经知道你的答案看起来和上面的一样,那么为什么要发布它呢?只是问。在这里,我试图解决问题,但有时我达到99%的解决方案,有人把答案。所以在那一刻,我感觉很糟糕,但我想,如果有人检查并投票,我至少会给出我的答案。我不希望不经过我的努力就能得到选票,希望你能得到我。
<?php   
    $str = "str1:1,str2:2,str33:33";

    foreach(explode(',',$str) as $s){
        $s = explode(':',$s);
        $array[$s[1]]['mystr']=$s[0];
    }
    print_r($array);

?>
Array ( [1] => Array ( [mystr] => str1 ) [2] => Array ( [mystr] => str2 ) [33] => Array ( [mystr] => str33 ) )