首頁 >後端開發 >php教程 >如何在 PHP 中高效轉置多維數組?

如何在 PHP 中高效轉置多維數組?

Linda Hamilton
Linda Hamilton原創
2024-12-29 00:35:10831瀏覽

How to Efficiently Transpose Multidimensional Arrays in PHP?

在 PHP 中轉置多維數組

在 PHP 領域,使用多維數組通常需要進行操作才能實現所需的資料表示。其中一個轉換是轉置數組,有效地翻轉其行和列以建立具有重構維度的新數組。

如何在 PHP 中轉置多維數組

在 PHP 中轉置多維數組最簡單的方法是結合使用 array_unshift() 和 call_user_func_array()。操作方法如下:

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}

此函數的工作原理是在陣列的開頭添加一個空元素,該元素充當數組鍵的佔位符。然後,call_user_func_array() 使用 array_map 透過映射一個僅傳回原始陣列元素的函數來建立一個新陣列。結果是一個轉置數組。

更通用的解決方案

對於涉及多維數組的更複雜場景,需要更通用的解決方案。目標是建立一個函數,無論數組的維度如何,都可以轉置數組,使得以下等式成立:

$foo[j][k][...][x][y][z] = $bar[z][k][...][x][y][j]

以下是可以實現此目的的遞歸函數範例:

function transposeRecursive($array) {
    if (!is_array($array)) {
        return $array;
    }
    return array_map(function($item) {
        return transposeRecursive($item);
    }, $array[0]) + transposeRecursive(array_slice($array, 1));
}

此函數迭代處理數組,遞歸地轉置其維度,直到到達最裡面的數組。透過將轉置與數組切片結合,它可以有效地重建數組,確保前面提到的方程式成立。

以上是如何在 PHP 中高效轉置多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn