PHP 開発では、配列をキーと値のペアの形式に変換する必要があることがよくあります。つまり、配列内の特定の値をキーとして使用し、他の値を値として使用して、新しい配列を形成します。配列。フォーマット変換のために配列を手動で走査するのは非常に面倒なので、関数を作成して操作を簡素化できます。
以下では、開発者が関連する変換操作をより効率的に完了できるように、配列をキーと値のペアに変換する関数の実装方法を紹介します。
まず、受信配列を次の形式のキー配列に変換するために、arrayToKV()
という名前の関数を定義する必要があります。値のペア:
function arrayToKV($arr, $key, $value) { $result = array(); foreach ($arr as $item) { $result[$item[$key]] = $item[$value]; } return $result; }
FunctionarrayToKV()
3 つのパラメータを受け入れます: 変換される配列$arr
、配列要素のキーとしてのフィールド名$key
、配列要素 $value
の値としてのフィールド名。この関数は配列要素を走査し、各要素で指定されたフィールド名をキーとして使用し、指定されたフィールド名に対応する値を値として使用し、最後に変換された配列を返します。
arrayToKV()
関数の正しさを検証するために、テスト配列を定義し、その関数を呼び出すことができます。 testing:
// 定义测试数组 $students = array( array('name' => 'Tom', 'grade' => 88), array('name' => 'Lucy', 'grade' => 92), array('name' => 'Jack', 'grade' => 78), array('name' => 'Mary', 'grade' => 85), ); // 调用函数进行转换测试 $grades = arrayToKV($students, 'name', 'grade'); print_r($grades);
テスト配列$students
には、数人の生徒の名前と成績情報が保存されます。 arrayToKV()
関数を使用して、学生の名前をキーとして、学生の成績を値として使用し、キーと値のペアの形式で配列 $grades
を取得します。それを出力します。出力結果は次のとおりです。
Array ( [Tom] => 88 [Lucy] => 92 [Jack] => 78 [Mary] => 85 )
出力配列がキーと値のペアの形式に正常に変換され、変換結果が期待どおりであることがわかります。
上記の基本的な実装に加えて、arrayToKV()
関数を拡張し、いくつかのパラメーターと関数を追加することもできます。より強力かつ柔軟になります。
たとえば、パラメータ $unique
を関数に追加して、生成されたキーが一意であるかどうかを制御できます。 true
に設定すると、関数はキーと値のペアの生成プロセスでキーが繰り返されるかどうかを判断し、繰り返される場合は上書きされます。false## に設定すると、関数はキーを上書きします。 #、関数はそれを無視します。キーは一意であり、重複したキーが繰り返し保存されます。
function arrayToKV($arr, $key, $value, $unique = true) { $result = array(); foreach ($arr as $item) { $k = $item[$key]; $v = $item[$value]; if ($unique) { $result[$k] = $v; } else { if (!isset($result[$k])) { $result[$k] = array(); } $result[$k][] = $v; } } return $result; }
$key と
$value に基づいて要素を取得します。 を現在の要素のキーと値に割り当て、
$unique パラメーターの値に基づいて処理方法を決定します。
$unique が
true の場合、キーと値のペアは結果配列に直接保存されます。それ以外の場合、値は結果配列内の対応するキーの値に保存されます。配列内のキーの一意性に基づいて。こうすることで、同じキーが存在する場合でも、すべての値を保存しておくことで後続の処理を容易にします。
以上がPHP を使用して配列をキーと値のペアに変換する関数をカプセル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。