Heim  >  Artikel  >  Backend-Entwicklung  >  So transponieren Sie ein zweidimensionales Array von Schlüsselnamen in PHP

So transponieren Sie ein zweidimensionales Array von Schlüsselnamen in PHP

PHPz
PHPzOriginal
2023-04-23 10:10:34588Durchsuche

Bei der PHP-Programmierung verwenden wir häufig Arrays und es gibt viele Operationen für Arrays. Eine der interessanteren Operationen ist die Transposition von Schlüsselnamen in einem zweidimensionalen Array.

Das sogenannte zweidimensionale Array bedeutet, dass jedes Element in einem Array ein Array ist. Unter Schlüsselnamentransposition versteht man die Änderung des Schlüsselnamens jedes Elements im zweidimensionalen Array in seinen Array-Index und gleichzeitig die Transponierung des Arrays, das jedem Element im zweidimensionalen Array entspricht.

In diesem Artikel wird erläutert, wie Sie mit PHP die Schlüsselnamen-Transpositionsoperation für ein zweidimensionales Array implementieren.

1. Erstellen Sie ein zweidimensionales Array

Bevor Sie mit der Erklärung beginnen, müssen Sie zunächst ein zweidimensionales Array erstellen. Wir können den folgenden Code verwenden:

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

In diesem zweidimensionalen Array ist jedes Element ein assoziatives Array, das den Namen und die Farbe der Frucht enthält. Jetzt müssen wir den Schlüsselnamen darauf transponieren.

2. Verwenden Sie die Funktion array_column, um ein zweidimensionales Array zu transponieren.

PHP stellt eine Funktion namens array_column bereit, mit der eine bestimmte Spalte aus einem mehrdimensionalen Array extrahiert werden kann Array. In diesem Artikel werden wir diese Funktion verwenden, um die Transposition von Schlüsselnamen zu implementieren.

Zuerst müssen wir alle Schlüsselnamen im zweidimensionalen Array extrahieren und in ein eindimensionales Array konvertieren. Verwenden Sie die Funktion array_keys, um alle Schlüsselnamen zu extrahieren, und verwenden Sie die Funktion array_values, um alle Werte zu extrahieren. Wir müssen nur das von der Funktion array_keys zurückgegebene Array als zweiten Parameter an die Funktion array_column übergeben.

Der Code wird wie folgt implementiert:

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

In diesem Schritt verwenden wir den Schlüsselnamen jedes Elements im zweidimensionalen Array als Index des neuen Arrays. Das jedem Element im ursprünglichen Array entsprechende Array wird zum Wert des neuen Arrays.

3. Transponieren Sie die Schlüsselnamen im Unterarray

Obwohl im aktuellen neuen Array die Schlüsselnamen transponiert wurden, ist dies auch bei jedem Wert im neuen Array der Fall ein Array, aber der Schlüsselname in jedem Array ist nicht der Index, den wir brauchen. Daher müssen wir auch die Schlüsselnamen jedes Unterarrays im neuen Array transponieren.

Wir können die Funktion array_map verwenden, um eine Rückruffunktion auf jedes Unterarray im Array newArr anzuwenden, um die Schlüsselnamen zu transponieren. Der Code wird wie folgt implementiert:

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

Hier verwenden wir zunächst die Funktion array_keys, um den aktuellen Schlüsselnamen des Arrays zu extrahieren, und kombinieren dann den extrahierten Schlüsselnamen und den aktuellen Wert, um eine neue Zuordnung zu bilden über das Funktionsarray array_combine. Auf diese Weise haben wir die Schlüsselnamen jedes Unterarrays erfolgreich in das neue Array transponiert.

4. Vollständige Code-Implementierung

Durch die obigen Schritte können wir für ein gegebenes zweidimensionales Array die Schlüsselnamen-Transpositionsoperation implementieren. Das Folgende ist die vollständige Code-Implementierung:

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

print_r($newArr);

Das Ausgabeergebnis ist wie folgt:

Array
(
    [name] => Array
        (
            [fruit1] => apple
            [fruit2] => banana
            [fruit3] => orange
        )

    [color] => Array
        (
            [fruit1] => red
            [fruit2] => yellow
            [fruit3] => orange
        )

)

Wie Sie sehen können, haben wir den Schlüsselnamen jedes Elements in erfolgreich umgesetzt zweidimensionales Array Für den Index im neuen Array wird jeder Schlüsselname im Subarray auch auf den neuen Index übertragen.

Zusammenfassung

In diesem Artikel beschreiben wir die Schlüsselnamen-Transpositionsoperation für zweidimensionale Arrays in PHP und stellen vor, wie die Funktionen array_column und array_map zum Implementieren dieser Operation verwendet werden . Wenn wir mehrdimensionale Arrays bearbeiten müssen, kann dieser Vorgang die Codemenge einsparen und die Entwicklungseffizienz verbessern.

Das obige ist der detaillierte Inhalt vonSo transponieren Sie ein zweidimensionales Array von Schlüsselnamen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn