我有这样的数组:
[0] => MFG Part Number: M402TM
[1] => SKU: dd32
[2] => Weight: 2.99lb/1.36kg
[3] => Warranty: 2
我想要这样的数组:
[MFG Part Number] => M402TM
[SKU] => dd32
[Weight] => 2.99lb/1.36kg
[Warranty] => 2
我是使用以下代码完成的:
$new_array = array_reduce($normal_array, function ($c, $v){
preg_match('/^([^:]+):\s+(.*)$/', $v, $m);
if(!empty($m[1])){
return array_merge($c, array($m[1] => $m[2]));}
else{
return array();
}
},[]);
这在本地很有效,但是当我在服务器上打开脚本时,出现了问题,可能是由于PHP版本不同或其他原因所致,
PHP解析错误:语法错误,第322行在/location.php中出现意外的'['
这是代码的一部分
},[]);
有帮助吗?也许我使用的代码不好?有补充代码吗?
答案 0 :(得分:0)
如果您无法升级php版本,请使用旧的array()样式:
$new_array = array_reduce($normal_array, function ($c, $v){
preg_match('/^([^:]+):\s+(.*)$/', $v, $m);
if(!empty($m[1])){
return array_merge($c, array($m[1] => $m[2]));}
else{
return array();
}
},array());