ホームページ > バックエンド開発 > PHPチュートリアル > PHP で多次元配列を効率的に転置するにはどうすればよいですか?

PHP で多次元配列を効率的に転置するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 00:35:10
オリジナル
831 人が閲覧しました

How to Efficiently Transpose Multidimensional Arrays in PHP?

PHP での多次元配列の転置

PHP の領域では、多次元配列を操作して目的のデータ表現を実現するために操作が必要になることがよくあります。そのような変換の 1 つは、配列を転置し、その行と列を効果的に反転して、再構築された次元を持つ新しい配列を作成することです。

PHP で多次元配列を転置する方法

PHP で多次元配列を転置する最も簡単な方法は、array_unshift() と array_unshift() を組み合わせて使用​​することです。 call_user_func_array()。その方法は次のとおりです。

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}
ログイン後にコピー

この関数は、配列キーのプレースホルダーとして機能する null 要素を配列の先頭に追加することによって機能します。次に、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート