我有一个数组
[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”,我需要添加为新的键值对。 有人可以帮忙吗? 对不起我的缩进问题。
答案 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);