在数组之间插入一个值

时间:2013-11-21 18:09:32

标签: php arrays

我想在数组之间插入一个值。两个阵列都是动态生成的。以下是示例代码

$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。

2 个答案:

答案 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;
}