我在更新深度嵌套的多维php关联数组时遇到问题。 我基本上希望它添加和'parent_id'键以及递增值给所有在其下面有数组的数组元素。
例如,我有下面的数组。
[root] =>
Array('child_1' =>
Array('child1_grandchild_1' => 'gchild1_value',
'child1_grandchild_2' => Array('grandchild_1' => 'gchildval1',
'grandchild_2 => 'gchildval2',
'grandchild_3' => 'gchildval3'),
'child1_grandchild_3' => 'gchild3_value'),
'child_2', => Array('child2_grandchild_1' => 'gchildval1',
'child2_grandchild_2' => 'gchildval2'),
'child_3' => 'child3_val',
'child_4' => 'child4_val'
);
我想为具有数组值的元素添加父键id元素。 基本上,上面的数组将转换为下面的数组。但我不知道如何做到这一点,因为我不知道数组嵌套有多深。 我尝试通过引用传递数组,通过更新它不起作用。
[root] =>
Array( 'parent_id' => 1
'child_1' =>
Array('child1_grandchild_1' => 'gchild1_value',
'child1_grandchild_2' => Array('parent_id' => 2,
'grandchild_1' => 'gchildval1',
'grandchild_2 => 'gchildval2',
'grandchild_3' => 'gchildval3'),
'child1_grandchild_3' => 'gchild3_value'),
'child_2', => Array('parent_id' => 3,
'child2_grandchild_1' => 'gchildval1',
'child2_grandchild_2' => 'gchildval2'),
'child_3' => 'child3_val',
'child_4' => 'child4_val'
);
答案 0 :(得分:0)
$no = 1000;
$no2 = 1;
function addpid(&$item, $key)
{
global $no;
global $no2;
if(is_array($item)){
$item['parent_id'] = $no;
$no++;
}else{
$no2++;
$no=$no2*1000;
}
}
$yourarray
array_walk_recursive($yourarray, 'addpid');