array_push () mit Schlüsselwertpaar

183

Ich habe ein vorhandenes Array, zu dem ich einen Wert hinzufügen möchte.

Ich versuche das array_push()ohne Erfolg zu erreichen .

Unten ist mein Code:

$data = array(
    "dog" => "cat"
);

array_push($data['cat'], 'wagon');

Was ich erreichen möchte, ist, cat als Schlüssel zum $dataArray mit wagon als Wert hinzuzufügen, um wie im folgenden Snippet darauf zuzugreifen:

echo $data['cat']; // the expected output is: wagon

Wie kann ich das erreichen?

Mistero
quelle

Antworten:

332

Was ist also mit:

$data['cat']='wagon';
dusoft
quelle
49

Wenn Sie mehrere Schlüssel => Wert hinzufügen müssen, versuchen Sie dies.

$data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));
Harijs Krūtainis
quelle
1
Könnte auch eine Schleife dafür verwenden.
Jack Perry
Eine Schleife hilft nicht. Wenn Sie Werte mit einem doppelten Schlüsselnamen übertragen möchten, müssen Sie diese verwenden array_merge.
Richard Smith
38
$data['cat'] = 'wagon';

Das ist alles, was Sie brauchen, um den Schlüssel und den Wert zum Array hinzuzufügen.

rogeriopvl
quelle
6

Beispielsweise:

$data = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');

Zum Ändern des Schlüsselwerts:

$data['firstKey'] = 'changedValue'; 
//this will change value of firstKey because firstkey is available in array

Ausgabe:

Array ([firstKey] => changedValue [secondKey] => secondValue)

So fügen Sie ein neues Schlüsselwertpaar hinzu:

$data['newKey'] = 'newValue'; 
//this will add new key and value because newKey is not available in array

Ausgabe:

Array ([firstKey] => firstValue [secondKey] => secondValue [newKey] => newValue)

Prinz Patel
quelle
5

Sie müssen die Funktion array_push () nicht verwenden, sondern können dem Array einen neuen Wert mit einem neuen Schlüssel direkt zuweisen, z.

$array = array("color1"=>"red", "color2"=>"blue");
$array['color3']='green';
print_r($array);


Output:

   Array(
     [color1] => red
     [color2] => blue
     [color3] => green
   )
Deepak Vaishnav
quelle
Sie sollten auch hervorheben, was der genaue Unterschied ist, hier haben Sie = anstelle von für OP
NitinSingh
1
Dieser Code ist falsch. array_push verwendet zwei Parameter, und Sie erhalten eine Warnung, dass Sie es falsch verwenden, mit dem Ergebnis, dass der Aufruf von array_push nichts bewirkt. Was die zweite Zeile Ihres Codes tatsächlich tut, ist einfach $array['color3']='green'. Genau das hat @dusoft oben getan. Ihr Code ist nur eine Verschleierung dieser Lösung.
Richard Smith
@ RichardSmith, danke, dass du meinen Fehler gezeigt hast. Ich habe meine Antwort geändert. :)
Deepak Vaishnav
0

Array ['Schlüssel'] = Wert;

$data['cat'] = 'wagon';

Das brauchen Sie. Hierfür muss die Funktion array_push () nicht verwendet werden. Manchmal ist das Problem sehr einfach und wir denken komplex :).

Herr Faizan
quelle
-3

Mach das einfach:

$data = [
    "dog" => "cat"
];

array_push($data, ['cat' => 'wagon']);

* In PHP 7 und höher wird das Array mit [] erstellt, nicht mit ()

xayer
quelle
Zwei Probleme: array_pushFügt seine 2nd + -Parameter als neue Werte hinzu (keine Schlüssel-Wert-Paarungen wie dies der array_mergeFall ist), und PHP 7 akzeptiert gerne die array()Array-Syntax (sowie die Kurzschrift- []Syntax)
Chris Forrence