J'ai essayé de pousser un élément dans un tableau associatif comme ceci:
$new_input['name'] = array(
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
);
array_Push($options['inputs'], $new_input);
Cependant, au lieu de "nom", la clé ajoute un nombre. Y a-t-il une autre façon de le faire?
$options['inputs']['name'] = $new_input['name'];
Au lieu de array_Push (), utilisez array_merge ()
$existing_array = array('a'=>'b', 'b'=>'c');
$new_array = array('d'=>'e', 'f'=>'g');
array_merge($existing_array, $new_array);
Elle retourne le tableau résultant ajouté dans le tableau initial dans ce cas, $existing_array
.
Et le tableau résultant sera
array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')
Veuillez consulter ce lien link pour être au courant des problèmes éventuels.
C'est une fonction cool
function array_Push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
Juste utiliser
$myarray = array_Push_assoc($myarray, 'h', 'hello');
La solution de WebbieDave fonctionnera. Si vous ne voulez pas écraser quoi que ce soit qui pourrait déjà être nommé 'nom', vous pouvez aussi faire quelque chose comme ça:
$options['inputs']['name'][] = $new_input['name'];
Si $new_input
peut contenir plus qu'un élément 'name', vous voudrez peut-être utiliser 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);
La réponse de Curtis était très proche de ce dont j'avais besoin, mais je l'ai changée un peu.
Où il a utilisé:
$options['inputs']['name'][] = $new_input['name'];
J'ai utilisé:
$options[]['inputs']['name'] = $new_input['name'];
Voici mon code actuel utilisant une requête d'un DB:
while($row=mysql_fetch_array($result)){
$dtlg_array[]['dt'] = $row['dt'];
$dtlg_array[]['lat'] = $row['lat'];
$dtlg_array[]['lng'] = $row['lng'];
}
Merci!
Il suffit de changer quelques extraits (utilisez la fonction array_merge): -
$options['inputs']=array_merge($options['inputs'], $new_input);
$new_input = array('type' => 'text', 'label' => 'First name', 'show' => true, 'required' => true);
$options['inputs']['name'] = $new_input;
Vous pouvez utiliser array_merge ($ array1, $ array2) pour fusionner le tableau associatif . Exemple:
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
Sortie:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
Il y a une meilleure façon de faire ceci:
Si le tableau $ arr_options contient le tableau existant.
$arr_new_input['name'] = [
'type' => 'text',
'label' => 'First name',
'show' => true,
'required' => true
];
$arr_options += $arr_new_input;
Attention: $ arr_options doit exister . Si $ arr_options a déjà un ['nom'], il sera écrasé.
J'espère que cela t'aides.
Tu peux essayer.
$options['inputs'] = $options['inputs'] + $new_input;
j'utilise php5.6
code :
$person = ["name"=>"mohammed", "age"=>30];
$person['addr'] = "Sudan";
print_r($person)
sortie
Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )
Tout d’abord, vous devez définir un tableau
$myArray= array();
Ensuite, vous pouvez rien pousser dans votre tableau, ici je tente avec un tableau associatif
array_Push( $myArray ,array('id'=>23, 'category'=>'aaa'));
Vous pouvez voir le tableau modifié en php:
print_r($myArray);
Résultat: Array ([0] => Array ([id] => 23 [catégorie] => aaa))