我有一个格式为key: value
的字符串数组,如下所示:
Array
(
[0] => label: productlabel
[1] => timezone: SDT
[2] => price: 0.2225
[3] => reserve: 60
)
我需要创建一个关联数组,关键部分作为数组元素索引,值部分作为数组元素值,如下所示:
Array
(
[label] => productlabel
[timezone] => SDT
[price] => 0.22255
[reserve] => 60
)
是否有更短的方法或功能来创建它,或者我需要使用基本控制结构手动制作它?
答案 0 :(得分:1)
Map the array splitting :
上的值,然后使用array_column()分配该分组中的值和键:
$originalArray = [
'label: productlabel',
'timezone: SDT',
'price: 0.2225',
'reserve: 60',
];
$newArray = array_column(
array_map(
function($value) {
return explode(': ',$value);
},
$originalArray
),
1,
0
);
var_dump($newArray);
答案 1 :(得分:1)
根据:拆分每个,然后添加到新数组
foreach($array as $value){ // loop the original array
$split = explode(":",$value); // split values based on : into 2 element array
$array2[$split[0]] = $split[1]; // add to the new array, [key] = [value]
}
答案 2 :(得分:1)
您可以创建一个新数组并拆分为':'设置$ key和$ value之后。
$oldArray = [
'label: productlabel',
'timezone: SDT',
'price: 0.2225',
'reserve: 60',
];
$newArray = [];
foreach($oldArray as $pos) {
list($key, $value) = explode(':', $pos);
$newArray[$key] = $value;
}
答案 3 :(得分:1)
如果您将:
转换为=
,字符串就像.ini行,所以你可以这样对待它。
$assoc = parse_ini_string(str_replace(': ', '= ', join("\n", $array)));