我想在数组之间插入一个值。两个阵列都是动态生成的。以下是示例代码
$orig_array = Array
(
[r0] => Array
(
[c0] => Array
(
[field] => tab
[label] => First Name
[fieldid] => tab1
)
)
[r1] => Array
(
[c0] => Array
(
[field] => text
[label] => email
)
)
[r2] => Array
(
[c0] => Array
(
[field] => text
[label] => state
)
)
)
$insert_array = Array
(
[field] => text
[label] => First Name
[fieldid] => fname
[tabid] => tab1
)
现在我想在r1节点之后插入第二个数组。第二个阵列有两个条件插入特定位置。 1.字段是制表符字段(字段=制表符)和2.第二个数组中有一个制表符ID,应该对应于第一个数组中的fieldid。
答案 0 :(得分:0)
它只管理行,但您可以对列执行相同的操作:
$orig_array=array_combine(range(0,count($orig_array)-1),$orig_array);
foreach($orig_array as $key=>$row)
if($yourCondition==TRUE)
array_splice($orig_array, $key, 0, [["c0"=>$insert_array]]);
//you can manage your insertions here,
//and work on a "classical" multi-dimensional array (with numeric keys)
//wich is far more easy
$final_array=[];
foreach($orig_array as $key=>$row)
$final_array["r".$key]=$row;
修改强>
代码已更新,其中$ yourCondition是您不熟悉的条件。因为它位于foreach循环中,您可能需要if($row["c0"]["something"]==$something)
,其中有些内容是您的ID或标签。
答案 1 :(得分:0)
如果只是重写数组怎么办?
$final_array = array();
foreach($orig_array as $key=>$data)
{
$final_array[$key] = $data;
if($key == 'r1')
$data['r1'] = $insert_array;
}