创建多维数组的PHP问题

创建多维数组的PHP问题,php,Php,我有一个数组 [0] => Array ( [0] => Parameter_Key1 [1] => ParameterA [2] => Parameter_Value1 [3] => Parameter_Value2 ) [1] => Array ( [0] => [1] => ParameterB [

我有一个数组

 [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
    )
我正在尝试创建一个新数组,如下所示: 参数_-Key1=>ParameterA{“Parameter_-Value1”,Parameter_-Value2},ParameterB{“Parameter_-Value1”,Parameter_-Value2},Parameter C{“Parameter_-Value1”,Parameter_-Value2}

参数_Key2=>ParameterD{“Parameter_Value1”,Parameter_Value2},ParameterE{“Parameter_Value1”,Parameter_Value2},Parameter{“Parameter_Value1”,Parameter_Value2}

因此,在上面的输出中有两个键,分别命名为参数_Key1和参数_Key2 我必须将所有值添加到参数_Key1,直到在第0个索引处(子数组中)找到另一个值。如果我在第0个索引中找到第2个元素,如“Parameter_Key2”,我需要添加一个新的键值对。 有人能帮忙吗?
很抱歉我的缩进问题。

这是一个又快又脏的答案。如果输入数组的内部顺序与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);

数组([Parameter_-Key1]=>Array([ParameterA]=>{Parameter_-Value1,Parameter_-Value2},[ParameterB]=>{Parameter_-Value1,Parameter_-Value2})[Parameter_-Key2]=>Array([ParameterD]=>{Parameter_-Value1,Parameter_-Value2},[ParameterE]=>{Parameter,[ParameterF]=>{Parameter\u Value1,Parameter\u Value2})谢谢你的快速回答!!我只是有一个快速的疑问:如果循环没有大括号,你的意思是只对当前行有作用域吗?运行此代码时我也遇到了错误:PHP解析错误:语法错误,意外的“[”行内:$out[$key][$p[1]=[$p[2],$p[3]];if for one语句。许多人不喜欢它,因为这可能会发生:[code]if(false);echo('what');[/code]。语法错误很奇怪。我直接从3v4l中获取它:您可以尝试
=array($p[1],$p[2])
。但这只会对非常旧的PHP版本产生影响。第1行和第2行应该会在那里抛出错误。