如何转换字符串";str1:1,str2:2,str33:33&引用;在PHP上创建数组
请告诉我如何将字符串str1:1、str2:2、str33:33…转换为该数组:如何转换字符串";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] =>
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 ) )