array_push数组的第一个键

时间:2014-06-11 18:22:37

标签: php arrays

在使用array_push时,我很难在if语句中向数组添加一个片段。如果我尝试将$arr更改为$arr[0],则会收到错误消息:

Notice: Undefined offset: 0

PHP:

$data = array('test' => 'value');
if(!empty($_POST['stuff'])){
        $arr = array('test2' => array(array('test3' => 'value')));
        array_push($data, $arr);
      }
$data_string = json_encode($data, JSON_PRETTY_PRINT);

这就是目前正在发生的事情:

{
    "test": "value",
    "0": {
        "test2": [{
            "test3": "value"
            }]
         }

}

这就是我想要发生的事情:

{
    "test": "value",
    "test2": [{
            "test3": "value"
            }]
}

3 个答案:

答案 0 :(得分:3)

改为使用array_merge()

$data = array_merge($data,$arr);

Example

答案 1 :(得分:1)

不要使用array_push,您无法控制关联键:

$data['test2'] = array(array('test3' => 'value'));

答案 2 :(得分:0)

array_push用于索引数组。您正在使用关联数组,因此您只需要执行

$data = array('test' => 'value');
if(!empty($_POST['stuff'])){
    $data['test2'] = array(array('test3' => 'value')));
}