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 サイトの他の関連記事を参照してください。