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?

Antworten:



49

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

$data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));

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.


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)


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
   )

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 :).


-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 ()


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.