在 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中文網其他相關文章!