Einen Wer in ein Array einfügen...

pride

Grünschnabel
Hallo,
Ich habe ein Array, das Werte mit nummerischen Schlüsseln enthält:
PHP:
Array ( [0] => Track ID [1] => Name [2] => Artist [3] => Composer [4] => Album [5] => Grouping [6] => Genre [7] => Kind [8] => Size [9] => Total Time [10] => Disc Number [11] => Disc Count [12] => Track Number [13] => Track Count [14] => Year [15] => Date Modified [16] => Date Added [17] => Bit Rate [18] => Sample Rate [19] => Equalizer [20] => Comments [21] => Rating [22] => Compilation [23] => Artwork Count [24] => Season [25] => Persistent ID [26] => Track Type [27] => Location [28] => File Folder Count [29] => Library Folder Count )

Ich lese diese Werte aus einer XML Datei aus. Es kann nun vorkommen, dass einige Datensätze in dieser XML Datei nicht über alle Bezeichnungen (Track ID, Name, composer usw.) verfügen. Deshalb überprüfe ich das Array mittels in_array() auf vorhandensein dieser Bezeichner.
Sollte eine oder mehrer dieser Bezeichner fehlen, möchte ich sie automatisch in das Array einfügen lassen. Ich habe Funktionen zum einfügen von Daten an das Ende des Arrays und zun einfügen von Daten an den Anfang des Arrays gefunden, aber leider nichts um einen Bezeichner mitten in das Array setzen zu können.

Nochmal optisch dargestellt was ich brauche:

Nehmen wir an, eines der Datensätze hat nur folgende Bezeichner:
[0]-Track ID
[1]-Name
[2]-Composer
[3]-Album <----- Auf Schlüssel3 muss Artist stehen!
..... bis 28 ist alles richtig vorhanden /Nur bis 28, weil ja ein Bezeichner fehlt)

Auf Schlüssel3 muss Artist stehen!, wie kann ich nun den Wert des Schlüssels Nr.3 auf Artist stellen und gleichzeitig die Schlüssel, die danach kommen um jeweils den Wert 1 erhöhen ?

Es wäre mal wieder Super, wenn mir jemand von euch einen Tipp geben könnte.

//edit: Kurz gefragt: Wie kann ich die Schlüssel und Werte im Nachhinein nach meinen Angeban (Track ID = Schlüssel 1, Name = Schlüssel 2 usw.) neu zuordnen?

Gruß und Danke, Pride
 
Zuletzt bearbeitet:
Bin nicht sicher ob ich dich verstanden habe, aber ich antworte trotzdem:

Wenn du den fehlenden Schlüssel schon hast, warum machst du das nicht einfach mit einer Schleife?

Also ich meine:
- Füge neues Element am Ende des Array hinzu - mit dem Wert des (jetzt!) vorletzten.
- Schleife die von hinten bis zu dem fehlenden Eintrag, jeweils ein Array Element um 1 nach hinten "verschiebt".
- Wenn du bei dem fehlenden Element angelangt bist, überschreibst du es noch mit dem Wert den du haben willst. (Wahrscheinlich 0?)

Etwas anderes würde wohl auch eine PHP "platziere_in_mitte_von_array()" Funktion nicht machen.




Kleiner Edit:
Natürlich kannst du ja dein array auch "zerschneiden", an den ersten Teil ein Element hinzufügen, und dann wieder beide Teile verbinden ( array_slice und array_merge? )
 
Zuletzt bearbeitet:
Zurück