PHP问题创建多维数组

时间:2017-04-10 19:29:51

标签: php

我有一个数组

 [0] => Array
      (
        [0] => Parameter_Key1
        [1] => ParameterA
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )

 [1] => Array
    (
        [0] =>
        [1] => ParameterB
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )

  [2] => Array
    (
        [0] =>
        [1] => ParameterC
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )
 [3] => Array
    (
        [0] => Parameter_Key2
        [1] => ParameterD
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )

[4] => Array
    (
        [0] =>
        [1] => ParameterE
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )

[5] => Array
    (
        [0] =>
        [1] => ParameterF
        [2] => Parameter_Value1
        [3] => Parameter_Value2
    )

我正在尝试创建一个新的数组,如下所示:  Parameter_Key1 => ParameterA {“Parameter_Value1”,Parameter_Value2},ParameterB {“Parameter_Value1”,Parameter_Value2},ParameterC {“Parameter_Value1”,Parameter_Value2}

Parameter_Key2 => ParameterD {“Parameter_Value1”,Parameter_Value2},ParameterE {“Parameter_Value1”,Parameter_Value2},ParameterF {“Parameter_Value1”,Parameter_Value2}

因此在上面的输出中有两个键命名为Parameter_Key1和Parameter_Key2 我必须将所有值添加到Parameter_Key1,直到我在第0个索引处找到另一个值(在子数组中)。如果我在第0个索引中找到第二个元素,如“Parameter_Key2”,我需要添加为新的键值对。 有人可以帮忙吗? 对不起我的缩进问题。

1 个答案:

答案 0 :(得分:0)

这是一个快速而肮脏的答案。如果输入数组的内部顺序与数字顺序不同,则foreach将无效...

$in=[['k1','A','v1','v2'],['','B','v1','v2'],['','C','v1','v2'],['k2','D','v1','v2'],['','E','v1','v2']];//your input
$out=[];
$key='';
//var_dump($in);
foreach($in as $p) {
    if($p[0]!='') $key=$p[0];
    $out[$key][$p[1]]=[$p[2],$p[3]];
}
var_dump($out);