我一直在尝试像这样将项目推送到关联数组中:
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_push($options['inputs'], $new_input);
然而,它不是使用“name”作为键添加一个数字。有没有其他方法可以做到这一点?
我一直在尝试像这样将项目推送到关联数组中:
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_push($options['inputs'], $new_input);
然而,它不是使用“name”作为键添加一个数字。有没有其他方法可以做到这一点?
$options['inputs']['name'] = $new_input['name'];
使用 array_merge() 代替 array_push()。
它将合并两个数组并将它们的项组合成一个单独的数组。
示例代码 -
$existing_array = array('a'=>'b', 'b'=>'c');
$new_array = array('d'=>'e', 'f'=>'g');
$final_array=array_merge($existing_array, $new_array);
它返回最终数组中的结果数组。结果数组的结果将是 -
array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')
请查看此链接,了解可能出现的问题。这是一个很棒的函数
function array_push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
只需使用
$myarray = array_push_assoc($myarray, 'h', 'hello');
i use php5.6
code:
$person = ["name"=>"mohammed", "age"=>30];
$person['addr'] = "Sudan";
print_r($person)
输出
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
$options ['inputs'] ['name'] [] = $new_input ['name'];
$new_input
可能包含不止一个'name'元素,您可能需要使用array_merge
。$new_input = array('name'=>array(), 'details'=>array());
$new_input['name'] = array('type'=>'text', 'label'=>'First name'...);
$options['inputs'] = array_merge($options['inputs'], $new_input);
柯蒂斯的答案非常接近我所需,但我稍作更改。
他用了以下代码:
$options['inputs']['name'][] = $new_input['name'];
我使用了:
$options[]['inputs']['name'] = $new_input['name'];
这是我使用数据库查询的实际代码:
while($row=mysql_fetch_array($result)){
$dtlg_array[]['dt'] = $row['dt'];
$dtlg_array[]['lat'] = $row['lat'];
$dtlg_array[]['lng'] = $row['lng'];
}
谢谢!
$options['inputs']=array_merge($options['inputs'], $new_input);
有一种更好的方法来完成这个操作:
如果数组 $arr_options 包含现有的数组。
$arr_new_input['name'] = [
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
];
$arr_options += $arr_new_input;
警告:$arr_options 必须存在。如果 $arr_options 已经有 ['name'],它将被覆盖。
希望这可以帮助你。
$new_input = array('type' => 'text', 'label' => 'First name', 'show' => true, 'required' => true);
$options['inputs']['name'] = $new_input;