如何向此类型的数组添加新元素?

时间:2013-07-22 15:24:23

标签: php arrays associative-array

我想知道我要做些什么来添加东西:

$setting = array(
    'element' => array(
        array(
            'elelemt_name' => '',
            'element_path' => ''
        ),
    )
);

我要添加的对象是:

    array(
        'elelemt_name_two' => '',
        'element_path_two' => ''
    ),

最终结果将是:

$setting = array(
    'element' => array(
        array(
            'elelemt_name' => '',
            'element_path' => ''
        ),
        array(
            'elelemt_name_two' => '',
            'element_path_two' => ''
        ),
    ),
);

catch:$ setting = array();可能是$ a = array();或$ b = array()或任何东西,所以我不知道当包含数组的变量可以命名任何东西时我会如何添加内容。

我所知道的是,第一个键,$ element,总是$ element。所以这部分可以硬编码。

我在考虑写一个像以下的函数:

function add_array($type, $array){
    if(is_array($array) && is_array($type)){
        array_push($type, $array);
    }
}

然后我可以这样称呼它:

$array = array(
    'element_name_two' => '',
    'element_path_two' => ''
)

add_array($setting['element'], $array);

这有意义吗?或者我做错了吗?

2 个答案:

答案 0 :(得分:2)

不需要重型火炮:

$setting['element'][] = $new_array;
                   ^^--- short-hand syntax for array_push()

答案 1 :(得分:0)

最简单的方法就是添加它。

$setting['element'][] = array('element_name_two' => '','element_path_two' => '');

如果希望函数调整数组的内容,则应通过引用传入数组。

function add_array(&$type, $array){
    if(is_array($array) && is_array($type)){
        array_push($type, $array);
    }
}