Saya telah mencoba untuk mendorong item ke array asosiatif seperti ini:
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_push($options['inputs'], $new_input);
Namun, alih-alih 'nama' sebagai kunci dalam menambahkan angka. Apakah ada cara lain untuk melakukannya?
Jawaban:
$options['inputs']['name'] = $new_input['name'];
sumber
Alih-alih array_push () , gunakan array_merge ()
Ini akan menggabungkan dua array dan menggabungkan item mereka dalam satu array.
Kode Contoh -
$existing_array = array('a'=>'b', 'b'=>'c'); $new_array = array('d'=>'e', 'f'=>'g'); $final_array=array_merge($existing_array, $new_array);
Ini mengembalikan larik yang dihasilkan di final_array. Dan hasil dari larik yang dihasilkan akan menjadi -
array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')
Harap tinjau tautan ini , untuk mengetahui kemungkinan masalah.
sumber
Ini adalah fungsi yang keren
function array_push_assoc($array, $key, $value){ $array[$key] = $value; return $array; }
Gunakan saja
$myarray = array_push_assoc($myarray, 'h', 'hello');
Kredit & Penjelasan
sumber
Solusi WebbieDave akan berfungsi. Jika Anda tidak ingin menimpa apa pun yang mungkin sudah ada di 'name', Anda juga dapat melakukan sesuatu seperti ini:
$options['inputs']['name'][] = $new_input['name'];
sumber
Jika
$new_input
mungkin berisi lebih dari sekedar elemen 'nama' yang mungkin ingin Anda gunakanarray_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);
sumber
Jawaban Curtis sangat dekat dengan apa yang saya butuhkan, tetapi saya mengubahnya sedikit.
Dimana dia menggunakan:
$options['inputs']['name'][] = $new_input['name'];
Saya menggunakan:
$options[]['inputs']['name'] = $new_input['name'];
Inilah kode saya yang sebenarnya menggunakan kueri dari DB:
while($row=mysql_fetch_array($result)){ $dtlg_array[]['dt'] = $row['dt']; $dtlg_array[]['lat'] = $row['lat']; $dtlg_array[]['lng'] = $row['lng']; }
Terima kasih!
sumber
saya menggunakan
php5.6
kode :
$person = ["name"=>"mohammed", "age"=>30]; $person['addr'] = "Sudan"; print_r($person)
keluaran
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
sumber
Ubah saja beberapa cuplikan (gunakan fungsi array_merge): -
$options['inputs']=array_merge($options['inputs'], $new_input);
sumber
$new_input = array('type' => 'text', 'label' => 'First name', 'show' => true, 'required' => true); $options['inputs']['name'] = $new_input;
sumber
Ada cara yang lebih baik untuk melakukan ini:
Jika array $ arr_options berisi array yang sudah ada.
$arr_new_input['name'] = [ 'type' => 'text', 'label' => 'First name', 'show' => true, 'required' => true ]; $arr_options += $arr_new_input;
Peringatan: $ arr_options harus ada. jika $ arr_options sudah memiliki ['name'] itu akan ditimpa.
Semoga ini membantu.
sumber
Anda dapat mencoba.
$options['inputs'] = $options['inputs'] + $new_input;
sumber
Anda dapat menggunakan array_merge ($ array1, $ array2) untuk menggabungkan array asosiatif. Contoh:
$a1=array("red","green"); $a2=array("blue","yellow"); print_r(array_merge($a1,$a2));
Keluaran:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
sumber