在PHP中将项目推送到关联数组

ryu*_*ice 80 php arrays

我一直在尝试将项目推送到关联数组,如下所示:

$new_input['name'] = array(
    'type' => 'text', 
    'label' => 'First name', 
    'show' => true, 
    'required' => true
);
array_push($options['inputs'], $new_input);
Run Code Online (Sandbox Code Playgroud)

但是,而不是'name'作为键添加一个数字.还有另一种方法吗?

web*_*ave 108

$options['inputs']['name'] = $new_input['name'];
Run Code Online (Sandbox Code Playgroud)


Mur*_*ain 55

而不是array_push(),使用array_merge()

$existing_array = array('a'=>'b', 'b'=>'c');
$new_array = array('d'=>'e', 'f'=>'g');

$final_array=array_merge($existing_array, $new_array);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它返回结果数组附加在初始数组中__CODE__.

结果数组将是

array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')
Run Code Online (Sandbox Code Playgroud)

请查看此链接,以了解可能存在的问题.

  • 实际上它应该是 $existing_array = array('a'=>'b', 'b'=>'c'); $new_array = array('d'=>'e', 'f'=>'g'); $result = array_merge($existing_array, $new_array); (2认同)

Ajm*_*lim 15

这是一个很酷的功能

function array_push_assoc($array, $key, $value){
   $array[$key] = $value;
   return $array;
}
Run Code Online (Sandbox Code Playgroud)

只是用

$myarray = array_push_assoc($myarray, 'h', 'hello');
Run Code Online (Sandbox Code Playgroud)

致谢与解释


小智 8

我用php5.6

代码

$person = ["name"=>"mohammed", "age"=>30];

$person['addr'] = "Sudan";

print_r($person) 
Run Code Online (Sandbox Code Playgroud)

输出

Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
Run Code Online (Sandbox Code Playgroud)


Cur*_*tis 7

WebbieDave的解决方案将起作用.如果您不想覆盖可能已经在'name'的任何内容,您还可以执行以下操作:

$options['inputs']['name'][] = $new_input['name'];


the*_*iko 5

如果$new_input可能不仅仅包含您可能想要使用的“名称”元素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);
Run Code Online (Sandbox Code Playgroud)