Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将分隔字符串的PHP数组转换为多维键值_Php_Arrays_String_Explode_Delimited Text - Fatal编程技术网

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

将分隔字符串的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

我有以下带有分隔符“:”和“;”的字符串数组(实际数据将是1个或多个字符串,每个字符串中有5个或多个相同的Fieldname:值对)

当我将上述内容转换为key=>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'
如何将其转换为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
        )

)