PHP 分隔字符串数组转换为多维键值

PHP array of delimited strings into multidimensional key value

我有以下带有分隔符“:”和“;”的字符串数组(实际数据将是 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;...'

当我把上面的变成键=>值时,文件名被覆盖。所以我想把它变成一个多维数组。我环顾四周,没有找到解决方案,需要一些帮助。

我使用了 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'

如何将其放入键 => 值中,例如:

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);

returns

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
        )

)

http://ideone.com/Q69vVK