PHPの標準ライブラリ関数では、 array_fill()は小さいながらも非常に実用的なツールです。インタビュー中、候補者は、この一見シンプルでありながら独創的な機能に精通しているかどうかをしばしば調べられます。 array_fill()の使用を理解して習得することは、実際の開発の効率を改善するだけでなく、インタビューでの配列処理の習熟度を実証することもできます。
array_fill()は、指定された値で配列を入力するために使用されます。関数プロトタイプは次のとおりです。
array array_fill ( int $start_index , int $count , mixed $value )
$ start_index :indexを開始します
$ count :要素の数
$値:充填に使用される値
例:
$array = array_fill(0, 5, 'PHP');
print_r($array);
出力:
Array
(
[0] => PHP
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
)
この関数は、デフォルト値の配列をすばやく作成する必要がある場合に非常に便利です。
たとえば、偽の状態でブールアレイのセットを初期化する必要があります。
$status = array_fill(0, 10, false);
ユーザー投票ステータス、許可確認マーク、質問への回答ステータスなどの初期化タスクに適しています。
外部データを処理する場合があり、一部のフィールド値が欠落していますが、統一されたデータ形式を維持する必要があります。現時点では、 array_fill()を使用してその場所を占有できます。
$placeholders = array_fill(0, 3, 'N/A');
この記述は、CSVをエクスポートしたり、統一されたデータテーブルを構築する場合に非常に一般的です。
アンケートに5つの質問があり、各質問のデフォルト値が0ポイントであるとします。次のように書くことができます。
$scores = array_fill(1, 5, 0); // タイトル番号から 1 始める
array_fill()と他の配列関数と組み合わせると、より複雑なロジックを実装できます。
array_combine()とのジョイント:
フィールド名のセットがある場合は、各フィールドにデフォルト値を割り当てる必要があります。
$fields = ['name', 'email', 'phone'];
$defaults = array_fill(0, count($fields), '');
$data = array_combine($fields, $defaults);
出力:
Array
(
[name] =>
[email] =>
[phone] =>
)
これは、フォームのデフォルト値、インターフェイスフィールドフォーマットを処理する優れた方法です。
array_fill()は、特定のロジックで役立つネガティブインデックス作成を許可しますが、慎重な取り扱いが必要です。
$negArray = array_fill(-3, 3, 'X');
出力:
Array
(
[-3] => X
[-2] => X
[-1] => X
)
インタビュー中、インタビュアーは次のような質問をすることができます:
array_fill()を使用して、1〜100の範囲のインデックスと0の初期値を持つ配列をすばやく生成するため、最終配列のキーが連続整数である必要があります。
答え:
$data = array_fill(1, 100, 0);
高度な要件は次のとおりです。すべてのキーを「item_1」から「item_100」などの文字列形式にマップします。
$keys = array_map(fn($n) => "item_$n", range(1, 100));
$values = array_fill(0, 100, 0);
$result = array_combine($keys, $values);
ポストインターフェイスを作成し、10ユーザーのデフォルト情報の配列をhttps://api.m66.net/dataに送信するとします。各ユーザーデータ形式は次のとおりです。
[
'name' => '',
'email' => '',
'status' => 'inactive'
]
このように書くことができます:
$defaultUser = [
'name' => '',
'email' => '',
'status' => 'inactive'
];
$users = array_fill(0, 10, $defaultUser);
$payload = json_encode(['users' => $users]);
$ch = curl_init('https://api.m66.net/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);
このコードは、array_fill()が実際のビジネスシナリオで構造化されたデータを構築するプロセスを簡素化する方法を示しています。
array_fill()の使用をマスターすると、コードがより簡潔で直感的になります。それは複雑ではありませんが、しばしば「インタビュアーのテストポイント」を隠します。次回、初期化とデフォルト値の充填の必要性に遭遇したら、その存在を忘れないでください。 array_fill()を使用することは、コードレベルでのプラスだけでなく、インタビューで際立っている詳細のハイライトでもあります。