毎日のPHP開発では、特にフォームデータの処理、インターフェイス応答構造の構築、またはバッチの初期化データ構造の構築の場合、アレイの初期値を設定する必要があることがよくあります。手動の割り当ては長いだけでなく、エラーになりやすいです。現時点では、PHPの組み込みarray_fill()関数は非常に便利なツールです。アレイをすばやく埋め、開発効率を向上させ、コードをより読みやすく保守可能にするのに役立ちます。
array_fill()は、指定された値で配列を入力するためにPHPによって提供される配列関数です。
array array_fill(int $start_index, int $count, mixed $value)
$ start_index :配列内の最初の要素のインデックス。
$ count :埋める要素の数。
$値:埋めるために使用される値。
この関数は、 $ count要素の配列を返し、 $ start_indexで始まります。
// コンテナを作成します 5 要素,すべての初期値は次のとおりです 0 の配列
$defaultArray = array_fill(0, 5, 0);
print_r($defaultArray);
出力:
Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
)
この方法は、スコアリング、ステータスマーキング、許可ビット、その他の構造の初期化に特に適しています。
多くの場合、複数のユーザー、製品、またはモジュールの初期構造を準備する必要があります。 array_fill()とArray_map()と組み合わせると、このプロセスを簡素化できます。
$userIds = [101, 102, 103];
// 各ユーザーのデータの初期セットを生成します
$defaults = array_fill(0, count($userIds), [
'score' => 0,
'status' => 'pending',
'profile_url' => 'https://m66.net/user/profile'
]);
// 使用 array_combine ユーザーを翻訳します ID デフォルト値に関連付けられています
$userData = array_combine($userIds, $defaults);
print_r($userData);
出力:
Array
(
[101] => Array
(
[score] => 0
[status] => pending
[profile_url] => https://m66.net/user/profile
)
[102] => Array
(
[score] => 0
[status] => pending
[profile_url] => https://m66.net/user/profile
)
[103] => Array
(
[score] => 0
[status] => pending
[profile_url] => https://m66.net/user/profile
)
)
これにより、値を1つずつ割り当てる必要なく、複数のユーザーに一貫した初期データ構造を簡単に作成できます。
各構造に異なるURLやIDなどの動的データを含めることを望む場合は、 array_map()を使用して生成と協力できます。
$userIds = [201, 202, 203];
$userData = array_map(function($id) {
return [
'score' => 0,
'status' => 'new',
'profile_url' => "https://m66.net/user/profile?id={$id}"
];
}, $userIds);
// ユーザーを維持するため ID キー名として
$userData = array_combine($userIds, $userData);
print_r($userData);
出力では、各Profile_urlがユーザーのIDを自動的にスプライスし、構造をより柔軟にします。
ユーザー設定を初期化します。
バッチは、インターフェイス応答のデフォルトフィールドに入力します。
テストデータまたはシミュレーションデータを生成します。
状態マトリックスまたは許可テーブルを作成します。
array_fill()は、多くの人々によって無視されている非常に実用的な機能です。繰り返し構造を備えたデータを迅速かつ優雅に生成し、データ処理ロジックを大幅に簡素化するのに役立ちます。 array_combine()やarray_map()などの関数で使用すると、複雑な配列構造の構築も簡単に制御できます。次回、デフォルト値をデータバッチに割り当てる必要があるときは、この関数を試すことを忘れないでください。