Moin!
aus
$_myList['first'] -> 'black';
kann man direkt nicht mehr machen
$_myList['first']['background']['value'] -> 'black';
da $_myList['first'] breits vom Typ String ist und damit nicht implizit überschreibbar.
Wenn $_myList['first'] allerdings auf false oder NULL zeigt, dann lässt PHP die Typüberschreibung zu Array zu.
Man kann auch direkt ein leeres Array zuweisen.
Das Problem ist aber ein anderes:
"abc/def" ist der Key "abc" mit Value "def".
"abc/def/ghi" ist ['abc']['def'] als Key-Kette - aber ['abc'] ist kein vorher leeres Array, sondern der Value "def".
Die Frage ist also: Wie ist so ein Fall definiert?
Das Problem geht übrigens nicht weg, wenn man den eigentlichen Value im String anders abspaltet:
"abc = 1"
"abc/def = 2"
Hat dasselbe Problem: "abc" kann nicht gleichzeitig den Value 1 enthalten, und parallel das Array mit Key "def" sein. Da kommt man nur raus, wenn man in seinem Array mindestens noch einen Key "value" anlegt (und ausschließt, dass man selbst den Key "value" verwendet):
['abc']['value'] = 1
['abc']['def'] = array(...)
- Sven Rautenberg