Heim >Backend-Entwicklung >PHP-Problem >So verwenden Sie PHP zum Transponieren eines zweidimensionalen Objektarrays
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.
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:
Xiao Ming | Xiao Hong | Xiao Gang | |
---|---|---|---|
Math | 90 | 88 | 95 |
Englisch | 85 | 92 | 87Erstellen 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. | In PHP können wir den folgenden Code verwenden, um die Transposition eines zweidimensionalen Objektarrays zu implementieren: |
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]['name']; $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; } | 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:
$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) ); $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 94Zusammenfassung
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!