将分隔字符串的PHP数组转换为多维键值
我有以下带有分隔符“:”和“;”的字符串数组(实际数据将是1个或多个字符串,每个字符串中有5个或多个相同的Fieldname:值对) 当我将上述内容转换为key=>value时,文件名将被覆盖。所以我试图把它放到一个多维数组中。我环顾了很多地方,没有找到解决方案,需要一些帮助 我使用explode()实现了这一点:将分隔字符串的PHP数组转换为多维键值,php,arrays,string,explode,delimited-text,Php,Arrays,String,Explode,Delimited Text,我有以下带有分隔符“:”和“;”的字符串数组(实际数据将是1个或多个字符串,每个字符串中有5个或多个相同的Fieldname:值对) 当我将上述内容转换为key=>value时,文件名将被覆盖。所以我试图把它放到一个多维数组中。我环顾了很多地方,没有找到解决方案,需要一些帮助 我使用explode()实现了这一点: foreach ($array as $line) { $value[] = explode(';', $line); } var_dum
foreach ($array as $line) {
$value[] = explode(';', $line);
}
var_dump($value);
array
0 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'
1 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'
2 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'
如何将其转换为key=>value,如:
array
0 =>
array =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
1 =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
2=>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
测试和工作
<?php
$a = [
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
];
$array = array();
foreach($a as $b){
$temp_array = array();
foreach(explode(';',$b) as $c){
list($key,$val) = explode(':',$c);
$temp_array[$key] = $val;
}
$array[] = $temp_array;
}
print_r($array);
用分隔符
再次分解它:
尽量不要删除你的评论,此外,否决票就在接受之前。我不打算吵架,但我有点失望。
<?php
$a = [
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
];
$array = array();
foreach($a as $b){
$temp_array = array();
foreach(explode(';',$b) as $c){
list($key,$val) = explode(':',$c);
$temp_array[$key] = $val;
}
$array[] = $temp_array;
}
print_r($array);
Array
(
[0] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)
[1] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)
[2] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)
)