ホームページ  >  記事  >  バックエンド開発  >  PHP でキー名の 2 次元配列を転置する方法

PHP でキー名の 2 次元配列を転置する方法

PHPz
PHPzオリジナル
2023-04-23 10:10:34548ブラウズ

PHP プログラミングでは配列をよく使用し、配列に対する演算も数多くあります。より興味深い操作の 1 つは、2 次元配列内のキー名の転置です。

いわゆる 2 次元配列とは、配列内の各要素が配列であることを意味します。キー名の転置とは、二次元配列の各要素のキー名を配列の添字に変更すると同時に、二次元配列の各要素に対応する配列を転置することを指します。

この記事では、PHP を使用して 2 次元配列のキー名の転置操作を実装する方法を説明します。

1. 2 次元配列の作成

説明を始める前に、まず 2 次元配列を作成する必要があります。次のコードを使用できます。

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

この 2 次元配列では、各要素は連想配列であり、果物の名前と色が含まれています。ここで、キー名を転置する必要があります。

2. array_column 関数を使用して 2 次元配列を転置する

PHP には、多次元配列から特定の列を抽出するために使用できる array_column と呼ばれる関数が用意されています。この記事では、この関数を使用してキー名の転置を実装します。

まず、2 次元配列内のすべてのキー名を抽出し、それを 1 次元配列に変換する必要があります。すべてのキー名を抽出するには array_keys 関数を使用し、すべての値を抽出するには array_values 関数を使用します。 array_keys 関数によって返された配列を 2 番目のパラメーターとして array_column 関数に渡すだけです。

コードは次のように実装されます:

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

このステップでは、2 次元配列の各要素のキー名を新しい配列の添字として使用します。元の配列の各要素に対応する配列が、新しい配列の値になります。

3. サブ配列内のキー名を転置する

現在の新しい配列では、キー名は転置されていますが、新しい配列内の各値も配列であり、各配列のキー名は必要な添字ではありません。したがって、新しい配列内の各サブ配列のキー名を転置する必要もあります。

array_map 関数を使用して、newArr 配列内の各サブ配列にコールバック関数を適用し、キー名を置き換えることができます。コードは次のように実装されます。

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

ここでは、まず array_keys 関数を使用して配列の現在のキー名を抽出し、次に array_combine 関数を使用して、抽出されたキー名を使用して新しい連想配列を形成します。現在の値。このようにして、新しい配列内の各サブ配列のキー名を正常に転置することができました。

4. 完全なコード実装

上記の手順を通じて、特定の 2 次元配列に対して、キー名の転置操作を実装できます。以下は完全なコード実装です:

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

print_r($newArr);

出力結果は次のとおりです:

Array
(
    [name] => Array
        (
            [fruit1] => apple
            [fruit2] => banana
            [fruit3] => orange
        )

    [color] => Array
        (
            [fruit1] => red
            [fruit2] => yellow
            [fruit3] => orange
        )

)

ご覧のとおり、2 次元配列内の各要素のキー名を正常に転置しました。新しい配列の添え字に変換され、部分配列内の各キー名も新しい添え字に置き換えられます。

概要

この記事では、PHP での 2 次元配列のキー名の転置操作について説明し、array_column 関数と array_map 関数を使用してこの操作を実装する方法を紹介します。多次元配列を操作する必要がある場合、この操作によりコードの量が節約され、開発効率が向上します。

以上がPHP でキー名の 2 次元配列を転置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。