Webアプリケーションを開発するときは、特にフォームデータまたは挿入ステートメントを構築する場合、データベース内の特定のフィールドを初期化する必要があります。各フィールドの初期値を手動で手動で定義するのを避けるために、 array_fill_keys()関数は役に立ちます。フィールド名のセットを統合構造配列にすばやくマッピングするのに役立ちます。これは、データベースフィールドの初期化構造の構築に非常に適しています。
array_fill_keys()はphpの配列関数であり、その機能は次のとおりです。
指定されたキー名と均一な値を持つ配列を作成します。
関数プロトタイプ:
array array_fill_keys(array $keys, mixed $value)
$キー:キー名を含む配列。
$ value :これらのキーを対応させる値。
この関数の力は、データベースフィールドの初期化に非常に適した1つのコードに構造化された配列を迅速に構築できることです。
データベーステーブルユーザーがあり、フィールドには次のものが含まれているとします。ID、名前、電子メール、 created_at 、 updated_at 。初期化されたフィールドアレイを構築し、すべての値を空の文字列に設定して、後で挿入または更新できるようにする必要があります。
<?php
// フィールドはデータベースモデルからのものであるか、手動で定義されていると仮定します
$fields = ['id', 'name', 'email', 'created_at', 'updated_at'];
// 使用 array_fill_keys フィールド構造を初期化します
$initData = array_fill_keys($fields, '');
// 出力結果(デバッグ用)
print_r($initData);
/*
出力結果:
Array
(
[id] =>
[name] =>
[email] =>
[created_at] =>
[updated_at] =>
)
*/
?>
このようにして、 $ initdataをテンプレートとして直接使用し、対応するフィールドをコピーして変更してから、データベースに挿入できます。
フォームの送信データを処理する場合、 Array_fill_keys()でフィールドを初期化することもできます。
<?php
$fields = ['name', 'email', 'phone'];
$defaultData = array_fill_keys($fields, '');
$formInput = array_merge($defaultData, $_POST);
// ハンドルがあるとしますURL
$submitUrl = 'https://m66.net/user/submit';
?>
<form action="<?= $submitUrl ?>" method="post">
<input type="text" name="name" value="<?= htmlspecialchars($formInput['name']) ?>">
<input type="email" name="email" value="<?= htmlspecialchars($formInput['email']) ?>">
<input type="text" name="phone" value="<?= htmlspecialchars($formInput['phone']) ?>">
<button type="submit">提出する</button>
</form>
これにより、$ forminputに必要なフィールドが常に含まれることが保証され、特定のフィールドが欠落しているためエラーを回避できます。
array_fill_keys()は非常に実用的なPHPツール関数であり、特にアレイ構造が「テンプレートが開催される」必要があるシナリオでの使用に適しています。コードをより簡潔で、安全で、メンテナンスが簡単にすることができます。
データベース操作では、フィールド構造の初期化、フォームのデフォルト値の構築、またはバッチデータテンプレートなど、大きな役割を果たすことができます。初期化されたデータを構築するための優先オプションの1つとして使用することをお勧めします。