Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie PHP zum Transponieren eines zweidimensionalen Objektarrays

So verwenden Sie PHP zum Transponieren eines zweidimensionalen Objektarrays

PHPz
PHPzOriginal
2023-04-23 09:10:36738Durchsuche

In PHP verwenden wir häufig Arrays zum Speichern und Bearbeiten von Daten. In praktischen Anwendungen müssen wir manchmal ein zweidimensionales Objektarray transponieren. Bei der sogenannten Transposition werden die ursprünglichen Zeilen in Spalten und die Spalten in Zeilen umgewandelt. In diesem Artikel wird erläutert, wie Sie mit PHP ein zweidimensionales Objektarray transponieren.

  1. Originaldaten

Angenommen, wir haben ein zweidimensionales Objektarray $data, das die Namen der Schüler und die Noten jedes Fachs enthält, zum Beispiel:

$data = array(
  array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93),
  array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89),
  array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94)
);

Dieses Array kann als 3x4-Tabelle dargestellt werden, z unten gezeigt:

Name Mathe Englisch Chinesisch
Xiao. Ming 90 85 93
小红 88 92 89
Xiaogang 95 87 94

Unser Ziel ist es, diese Tabelle in eine 4x3-Tabelle umzuwandeln, in der die erste Zeile der Name des Fachs und der Rest die jeweiligen Noten sind Student . Wie unten gezeigt:

87 Durchlaufen Sie das ursprüngliche Array und tauschen Sie den Zeilenindex und den Spaltenindex aus jedes Element und speichern Sie es in $result Die entsprechende Position in In PHP können wir den folgenden Code verwenden, um die Transposition eines zweidimensionalen Objektarrays zu implementieren: Diese Funktion akzeptiert ein zweidimensionales Objektarray $data als Parameter und gibt ein transponiertes zweidimensionales Array zurück. Die spezifische Implementierung ist in die folgenden Schritte unterteilt: Ermitteln Sie zunächst die Anzahl der Zeilen und Spalten des ursprünglichen Arrays. Beachten Sie, dass es sich hier tatsächlich um die Anzahl der Spalten minus eins handelt, da das erste Element der Name und nicht der Betreff ist.

Xiao Ming Xiao Hong Xiao Gang
Math 90 88 95
Englisch 85 92Erstellen Sie eine neue Zwei -dimensionales Array $result, die Anzahl der Zeilen ist die Anzahl der Spalten des ursprünglichen Arrays und die Anzahl der Spalten ist die Anzahl der Zeilen des ursprünglichen Arrays.
gibt $result zurück.
function transpose($data) {
    //获取原数组的行数和列数
    $rows = count($data);
    $cols = count($data[0]) - 1;

    //创建一个新的二维数组
    $result = array();
    for($i=0; $i<=$cols; $i++) {
        $result[$i] = array();
    }

    //遍历原数组,将每个元素的行下标和列下标互换
    for($row=0; $row<$rows; $row++) {
        for($col=1; $col<=$cols; $col++) {
            $result[$col-1][$row] = $data[$row][&#39;name&#39;];
            $result[$col-1][$row+1] = $data[$row]["Math"];
            $result[$col-1][$row+2] = $data[$row]["English"];
            $result[$col-1][$row+3] = $data[$row]["Chinese"];
        }
    }

    return $result;
}
Dann erstellen Sie eine neue Sekunde. Die Anzahl der Zeilen des dimensionalen Arrays $result ist die Anzahl der Spalten des ursprünglichen Arrays, und die Anzahl der Spalten ist die Anzahl der Zeilen des ursprünglichen Arrays.
  1. Dann durch Doppelschleifen Zeilenindex und Spaltenindex jedes Elements im ursprünglichen Array werden vertauscht. Speichern Sie es an der entsprechenden Stelle in $result.
Endlich $result zurückgeben.

    Beachten Sie, dass diese Funktion für eine bestimmte ursprüngliche Array-Struktur implementiert ist. Wenn die ursprüngliche Array-Struktur unterschiedlich ist, muss die Funktion möglicherweise entsprechend geändert werden.
  • Verwendungsbeispiel
  • Das Folgende ist ein Anwendungsbeispiel:
$data = array(
    array(&#39;name&#39;=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93),
    array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89),
    array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94)
);

$result = transpose($data);

//输出转置后的数组
foreach($result as $row) {
    echo implode("\t", $row) . "\n";
}

Das Ausgabeergebnis lautet wie folgt:

小明    小红    小刚
90      88      95
85      92      87
93      89      94

Zusammenfassung
  • In diesem Artikel wird erläutert, wie Sie mit PHP die Transposition eines zweidimensionalen Objekts implementieren Array. Transponieren ist eine sehr häufige Operation, mit der Daten einfach zwischen Zeilen und Spalten ausgetauscht werden können, um bestimmte Anforderungen besser zu erfüllen. Obwohl PHP viele Array-Verarbeitungsfunktionen bereitstellt, bietet die Transposition keine entsprechende Funktion, aber wir können eine einfache Schleife verwenden, um dies zu erreichen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP zum Transponieren eines zweidimensionalen Objektarrays. 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