毎日のPHP開発では、各キーがブール値のfalseに対応する配列をすばやく初期化する必要がある場合があります。この時点で、 array_fill_keys関数は役立つ可能性があります。
array_fill_keysは、特定のキー配列に基づいて同じ値を持つ新しいキーの新しい配列を生成するPHPの組み込み関数です。関数の署名は次のとおりです。
array_fill_keys(array $keys, mixed $value): array
$キー:配列キーとして使用する配列。
$値:すべてのキーに対応する初期値。
フォームフィールド検証ロジックを扱っており、検証に失敗するように初期化する一連のフィールド(つまり、FALSE)を扱っているとします。この時点で、次のコードを使用できます。
<?php
$fields = ['username', 'email', 'password', 'confirm_password'];
$validationStatus = array_fill_keys($fields, false);
print_r($validationStatus);
出力:
Array
(
[username] =>
[email] =>
[password] =>
[confirm_password] =>
)
print_rではfalseが空であるように見えることに注意してください。
たとえば、許可制御アレイを初期化するために使用することもできます。
<?php
$permissions = ['read', 'write', 'delete', 'publish'];
$userPermissions = array_fill_keys($permissions, false);
// その後、ユーザーの役割に基づいてパワーを付与できます
if ($userRole === 'editor') {
$userPermissions['read'] = true;
$userPermissions['write'] = true;
}
var_dump($userPermissions);
Webサイトのナビゲーション状態など、ブール状態のリンクキーのセットを生成する場合は、これを行うことができます。
<?php
$routes = [
'https://m66.net/home',
'https://m66.net/about',
'https://m66.net/contact'
];
$navActive = array_fill_keys($routes, false);
// 現在のページがあると仮定します /about
$currentUrl = 'https://m66.net/about';
$navActive[$currentUrl] = true;
print_r($navActive);
出力は次のとおりです。
Array
(
[https://m66.net/home] =>
[https://m66.net/about] => 1
[https://m66.net/contact] =>
)
テンプレートをレンダリングするとき、このブール値に基づいてナビゲーションアイテムにアクティブなクラスを追加するかどうかを決定できます。
array_fill_keysは、初期状態配列を迅速に生成するのに適した簡潔で効率的な機能です。ブールフラグ、許可制御、ナビゲーションステータス、その他のシナリオに対処するのは非常に便利です。
次回ブールアレイを初期化する必要があるときは、この方法を試して、コードをより簡潔で読みやすくすることもできます。