我有以下带分隔符的字符串数组':'和';' (实际数据将是1个或多个字符串,每个字符串中包含5个或更多相同的Fieldname:value对)
0 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'
1 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'
2 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'
当我将上面的内容变为key =>值,Filednames覆盖。所以我试图把它变成一个多维数组。我已经看了很多,但没有找到解决方案,需要一些帮助。
我使用了explode()并且得到了它:
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 =>价值如:
array
0 =>
array =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
1 =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
2=>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
答案 0 :(得分:-2)
经过测试和工作,
<?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
)
)