Php 分解数组并删除前缀

Php 分解数组并删除前缀,php,arrays,multidimensional-array,explode,Php,Arrays,Multidimensional Array,Explode,我尝试使用explode为字符串创建数组 这是我的字符串: $string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7"; 这是我的完整代码: $string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7"; $d = explode(',', $string); echo '<pre>'; var_dump($d); 如何创建这样的数组 $arr = array(); $d = explode(',', $string); for($d as

我尝试使用explode为字符串创建数组

这是我的字符串:

$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
这是我的完整代码:

$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
$d = explode(',', $string);
echo '<pre>';
var_dump($d);
如何创建这样的数组

$arr = array();
$d = explode(',', $string);
for($d as $item){
   list($key,$value) = explode(':', $item);
   $arr[$key] = $value;
}
这应该起作用:

<?php 
foreach($d as $k => $v)
{
    $d2 = explode(':',$v);
    $array[$d2[0]] = $d2[1];
}
?>

这是一个使用循环的简单解决方案:

$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
$pairs = explode(',', $string);
$items = array_map(
    function($e){
        return explode(':', $e);
    },
    $pairs
);
$a = array_reduce(
    $items,
    function(&$r, $e) {
        $r[$e[0]] = $e[1];
        return $r;
    },
    array()
);

var_export($a);
您还可以以更实用的方式(在PHP>=5.3中)执行此操作:


$array
必须首先初始化
$array=array()
beforeach
foreach
@Gtx-PHP处理此问题时没有错误,尽管我同意它应该是initialisedgot此错误解析错误:语法错误,意外的T_变量,应为“;”在C:\xampp\htdocs\colous\modul\barang\explode.php中联机19@Wawan猜我需要看一下你的实际代码,猜有一个缺少的
某个地方,或者一个杂散的支架。
<?php 
foreach($d as $k => $v)
{
    $d2 = explode(':',$v);
    $array[$d2[0]] = $d2[1];
}
?>
$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
$pairs = explode(',', $string);
$a = array();
foreach ($pairs as $pair) {
    list($k,$v) = explode(':', $pair);
    $a[$k] = $v;
}
var_export($a);
$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
$pairs = explode(',', $string);
$items = array_map(
    function($e){
        return explode(':', $e);
    },
    $pairs
);
$a = array_reduce(
    $items,
    function(&$r, $e) {
        $r[$e[0]] = $e[1];
        return $r;
    },
    array()
);

var_export($a);