2017-10-19 3 views
-1

Ich möchte ein assoziatives Array erweitern. Die ursprüngliche Anordnung ist wieAssoc-Array erweitern

$arr = [[ 
    'ID'  => 0, 
    'TEXT' => SOME_CONST, 
    'CHECKED' => $opt_flag, 
]]; 

Mit einem neuen Zustand Ich mag würde diese vorhandene Array erweitern.

if (defined('MODULE_STATUS') && MODULE_STATUS == 'true') { 
    $arr['JSON_ATTRDATA'] = 1; 
} 

Das Ergebnis ist

Array 
(
    [0] => Array 
     (
      [ID] => 0 
      [TEXT] => text 
      [CHECKED] => 1 
     ) 

    [JSON_ATTRDATA] => 1 
) 

Was falsch ist, dass der neue Schlüssel außerhalb des nestet Array ist?

+0

Sie $ arr [0] [ 'JSON_ATTRDATA'] = 1; – madalinivascu

+0

Das Array, das die Werte enthält, ist ein Sub-Array von '$ arr' bei Index 0, also müssen Sie Ihren neuen Schlüssel' $ arr [0] ['JSON_ATTRDATA'] ' – Mohammad

+1

zuweisen, weil es außerhalb des verschachtelten Arrays liegt Sie haben es außerhalb des verschachtelten Arrays eingefügt. Wenn Ihnen das unklar ist, empfehle ich dringend, das PHP-Handbuch über die Funktionsweise von Arrays erneut zu lesen. – Gordon

Antwort

1

Sie $arr[0]['JSON_ATTRDATA'] = 1; jetzt wollen Sie das übergeordnete Array anhängt, möchten Sie das Kind Array, das der Schlüssel 0

0

das Array hat $arr bereits mit 1 Objekt

durch seinen Index dieses Objekt Wert ändern

$arr[0] = "anything else" 

und mehr Objekte

$arr[] = "Another object"; 
hinzufügen

sollten Sie anrufen:

$arr[0]['JSON_ATTRDATA'] = 1; 

0

Sie innerhalb des Arrays $arr[0]['JSON_ATTRDATA']

DETAILS

$arr enthält Array eine andere key => value zum ersten Objekt hinzufügen. Gefällt Ihnen dieses

Array 
(
    [0] => Array 
     (
      [ID] => 0 
      [TEXT] => text 
      [CHECKED] => 1 
     ) 
) 

Also, wenn Sie $arr['JSON_ATTRDATA'] hinzufügen fügen Sie es in das erste Array