在使用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"
}]
}
答案 0 :(得分:3)
答案 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')));
}