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

时间:2015-11-09 00:34:53

标签: php arrays string explode delimited-text

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

1 个答案:

答案 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
        )

)

http://ideone.com/Q69vVK