Schlüssel im assoziativen Array in PHP ändern

8

Angenommen, ich habe ein Array wie folgt:

%Vor%

Wie würde ich die Schlüssel der inneren Arrays ändern? Sagen wir, ich möchte "n" für "name" und "l" für "last_name" ändern. Unter Berücksichtigung, dass dies passieren kann, hat ein Array keinen bestimmten Schlüssel.

    
Hommer Smith 05.11.2012, 13:46
quelle

6 Antworten

8

Verwenden von array_walk

%Vor%     
Atmarama 06.02.2016, 13:59
quelle
13

Etwas wie das vielleicht:

%Vor%

HINWEIS: Diese Lösung ändert die Reihenfolge der Schlüssel. Um die Reihenfolge beizubehalten, müssten Sie das Array neu erstellen.

    
Carl Owens 05.11.2012 13:51
quelle
3

Sie könnten haben:

  1. ein Array, das den Schlüsselaustausch abbildet (um den Prozess parametrisierbar zu machen)
  2. Eine Schleife, die das ursprüngliche Array verarbeitet und auf jedes Array-Element über Referenz
  3. zugreift

ZB:

%Vor%

Auf diese Weise können Sie andere Ersetzungen durchführen, indem Sie der Variablen $mapKeyArray einfach einen Schlüssel / Wert hinzufügen.

Diese Lösung funktioniert auch, wenn ein Schlüssel im ursprünglichen Array nicht verfügbar ist

    
Alberto Arena 05.11.2012 13:59
quelle
1

Notieren Sie sich den alten Wert, verwenden Sie unset , um ihn aus dem Array zu entfernen, und fügen Sie ihn hinzu es mit dem neuen Schlüssel und dem alten Wertpaar.

    
Ed Heal 05.11.2012 13:50
quelle
0

Sie könnten die Funktion array_flip verwenden:

%Vor%     
Lajos Meszaros 28.05.2015 10:17
quelle
0

Umbenennen des Schlüssels und Beibehalten der Reihenfolge (das spätere war wichtig für den Anwendungsfall, dass der folgende Code geschrieben wurde).

%Vor%

Und einige Unit-Tests (PHPUnit wird verwendet, aber hoffentlich verständlich als Zweck der Tests).

%Vor%

Die AssertError-Assertion ist für PHPUnit von Ссылка

verfügbar     
Richard A Quadling 10.11.2017 11:44
quelle

Tags und Links