実際の開発では、特にユーザー構成または複数のフォーム設定を扱う場合、統一された構造と同様のコンテンツを備えた構成配列を作成する必要があることがよくあります。同じ構造のコードの繰り返しの書き込みを避けるために、PHPのarray_fill()関数は非常に実用的なツールになります。
この記事では、array_fill()を使用してデフォルト構造を使用して構成アレイテンプレートを作成する方法を紹介し、実際のケースでそれを実証します。
array_fill()は、指定された値で配列を埋めるPHPの組み込み関数です。
関数プロトタイプ:
array_fill(int $start_index, int $count, mixed $value): array
$ start_index :配列の開始インデックス。
$ count :挿入する要素の数。
$値:各要素のデフォルト値。
ユーザー許可管理システムを開発しており、各ユーザーロールの許可構成配列を生成する必要があるとします。各構成アイテムには、次のデフォルト構造が含まれています。
[
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
]
5つの異なる役割のこのような構成を初期化する必要がある場合、 array_fill()を使用すると非常に効率的です。
<?php
// デフォルト構造を定義します
$defaultPermission = [
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
];
// 作成する 5 ロール構成の配列
$roles = array_fill(0, 5, $defaultPermission);
// オプション:各役割に名前を割り当てます(例えば admin、editor 待って)
$roleNames = ['admin', 'editor', 'author', 'subscriber', 'guest'];
$config = array_combine($roleNames, $roles);
// 結果を印刷して確認します
print_r($config);
Array
(
[admin] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
[editor] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
...
)
引用符:同じ参照オブジェクトには、 array_fill()が満たされています(特に配列にとって重要)。将来の役割の1つの構成を変更すると、他の役割も影響を受けます。
この問題を回避するために、匿名関数でarray_map()を使用できます。
$roles = array_map(function () use ($defaultPermission) {
return $defaultPermission;
}, range(1, 5));
構造の一貫性:この方法は、構造の一貫性がまだ決定されていない初期化シナリオに適しています。