PHPでは、配列を処理する場合、キー名が一貫性がない状況に遭遇するか、統一された形式が必要な状況に遭遇することがよくあります。 array_change_key_case()は、配列のすべてのキー名を大文字または小文字にすばやく迅速に変換できる非常に実用的な機能です。 array_combine()は、キー値に対応する新しい配列に2つの配列を再結合できます。
この記事では、これら2つの関数を組み合わせてキー名のケースを統一するだけでなく、配列構造を再編成する方法を紹介します。
この関数は、配列のすべてのキー名を小文字または大文字に変換するために使用されます。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$配列:処理する配列。
$ case :ターゲットケース、オプションの値はcase_lower (デフォルト)またはcase_upperです。
2つの数値を配列に結合するために使用されます。1つはキー名として、もう1つは対応する値として。
array_combine(array $keys, array $values): array
$キー:新しい配列のキー名になります。
$値:新しい配列の値になります。
注:両方の配列には、同じ数の要素が必要です。
2つの配列があるとします。1つはキー名の配列で、もう1つは値の配列です。小文字のキー名を統一し、値と新しい配列に結合します。
<?php
// キー名のオリジナル配列(ケースミックス)
$keys = ['Name', 'EMAIL', 'Age'];
// 対応する値配列
$values = ['Alice', 'alice@m66.net', 30];
// キー名を小文字に変換します
$lowercaseKeys = array_change_key_case(array_combine($keys, $values), CASE_LOWER);
// 出力処理された配列
print_r($lowercaseKeys);
Array
(
[name] => Alice
[email] => alice@m66.net
[age] => 30
)
Unity :多くの場合、インターフェイスによって返される配列キー名は均一ではない場合があります(たとえば、一部は小文字であり、一部は大文字です)。 array_change_key_case()を使用すると、データ処理の一貫性が向上します。
読みやすさ:統合された形式により、コードの読み取りが容易になり、メンテナンスコストが削減されます。
セキュリティ:一部の機能またはライブラリは、配列を処理する際のキー名に敏感であり、一貫性のないケースは予期しないエラーにつながる可能性があります。
array_change_key_case()は1次元配列でのみ動作し、再帰的に処理する必要があります。
Array_combine()を使用する前に、2つの配列が同じ長さであることを確認してください。それ以外の場合はFalseが返されます。
既にキー値ペア配列がある場合は、キー名のケースを統合するだけで、 array_change_key_case()を使用するだけで、 array_combine()は必要ありません。
実用的なアプリケーションシナリオは、ユーザーが提出したフォームデータであり、そのフィールド名は手動入力のために矛盾する場合があります。最初にフィールド名配列と対応する値アレイを抽出し、次にキー名形式の後に保存または確認できます。
<?php
// フォームからフィールドと値を仮定します
$formKeys = ['UserName', 'EMail', 'Phone'];
$formValues = ['bob', 'bob@m66.net', '123456789'];
// キー名を組み合わせて統合します
$processedForm = array_change_key_case(array_combine($formKeys, $formValues), CASE_LOWER);
// 結果
print_r($processedForm);
array_change_key_case()とarray_combine()を組み合わせることにより、配列キー名の形式の均一性とデータ構造の再編成を優雅に完了できます。この方法は、外部データ入力、インターフェイス応答変換、配列正規化、その他のシナリオの処理に非常に役立ちます。この手法を習得すると、PHPアレイ操作機能が大幅に向上する可能性があります。