2017-07-20 3 views
-1
$c=array("a"=>"blue","b"=>"green"); 
array_push($c,$c["d"]="red"); 
print_r($c); 

Dieser Code fügt den Schlüssel zu einem Array hinzu. Aber es fügt auch den indizierten Schlüssel zum selben Schlüssel/Wert-Paar hinzu. Wie vermeidet man diesen indizierten Schlüssel? Ausgabe:Wie Schlüssel zu PHP-Array hinzufügen?

Array 
(
    [a] => blue 
    [b] => green 
    [d] => red 
    [0] => red 
) 
+8

array_push nicht auf assoziative Arrays machen keinen Sinn hat sein. – GordonM

+0

frage mich, warum die Frage abgelehnt wird! es ist klar und zeigt einen Versuch mit Code –

Antwort

3

Fügen Sie einfach den neuen Schlüssel hinzu.

$c["y"] = "yellow"; 
3

Sie können auf diese Weise mehrere Elemente hinzufügen:

$array = array("a"=>"blue","b"=>"green"); 
$array['c'] = 'red'; 
+0

seine Arbeit..dank u..wie können wir die gleiche Sache mit array_push() tun? – vaishu

+0

@vaishu Sie können nicht – apokryfos

+0

@vaishu Sie können nicht, Array_push ist für nicht indizierte Arrays (und sollte verwendet werden, um mehrere Werte hinzuzufügen, für einzelne Werte ist es besser, es auf diese Weise zu verwenden) – Yupik

3

Haben Sie einfach versucht $c['d'] = 'red'; zu benutzen?

5

Verwenden Sie nicht array_push() hier ist es nicht notwendig. Fügen Sie einfach einen neuen Schlüssel mit Wert hinzu.

$c= array("a"=>"blue","b"=>"green"); 
$c['d'] = 'red'; 
5

Fügen Sie einfach einen anderen Schlüsselwert wie dieser

$c=array("a"=>"blue","b"=>"green"); 
$c["d"]="red"; 
print_r($c); 

heraus gesetzt ist

Array ([a] => blue [b] => green [d] => red) 
2

Machen Sie es wie durch,

$c=array("a"=>"blue","b"=>"green"); 
$c["d"]="red"; 
echo "<pre>"; 
print_r($c); 

und Output wie

Array 
(
    [a] => blue 
    [b] => green 
    [d] => red 
) 
2

Schieben Sie den neuen Schlüssel-Wert-Paar in das Array wie folgt:

$c["d"] = "red"; 

Keys nicht erstellt werden innerhalb der Matrix gefunden.

1

array_push ist im Grunde eine Operation, die ein Array als Stapel behandelt. Stacks haben keine Schlüssel, daher ist die Verwendung eines assoziativen Arrays mit array_push nicht sinnvoll (da Sie den Schlüssel mit array_pop sowieso nicht abrufen könnten).

Wenn Sie das Verhalten von array_push zu simulieren, die die gleichzeitige Zugabe von mehreren Einträgen können Sie Folgendes tun:

$c = array_merge($c, [ "d" => "red", "e" => "some other colour" ]); 
2

Zusätzlich zu den anderen: Sie können Elemente in das Array schieben, aber es gibt kein dokumentierter Weg (http://php.net/array_push) um eigene Schlüssel zu wählen. So verwendet array_push numerischen Index für sich.

Eine mögliche Alternative für assoziatives Array ist die Verwendung eines (anonymen) Objekts (stdClass). In diesem Fall können Sie Eigenschaften festlegen und es ist ein bisschen mehr OOP-Stil der Codierung.Nur indizierte Arrays

$foo = new stdClass; 
$foo->bar = 1; 

var_dump($foo); 

// if you really want to use it as array, you can cast it 
var_dump((array) $foo); 
-1
$arrayName = array(
    'bb' => 'aaaa', 
    'cc' => 'dddd', 
    'dd' => 'xxxx', 
    'aa' => 'yyyy', 
    'ee' => 'rrrr'); 

und

$arrayname = ['aaaa','dddd','xxxx','yyyy','rrrr']; 

diese Schlüsselnummer, gleiche

$arrayName = array(
    0 => 'aaaa', 
    1 => 'dddd', 
    2 => 'xxxx', 
    3 => 'yyyy', 
    4 => 'rrrr'); 
Verwandte Themen