PHPプログラミングでは、アレイ操作関数に遭遇することがよくあります。 array_fill()とarray_fill_keys()は、配列の塗りつぶしに使用される2つの非常に一般的な関数です。ただし、多くの初心者の開発者は、しばしばこれらの2つの機能を混乱させます。それらは同様の機能を持っていますが、本質的な違いがあります。今日は、これら2つの機能の違いを調査し、実際の開発で正しく使用する方法を分析します。
array_fill()
array_fill()は、指定された範囲の配列を入力するために使用され、すべての要素に同じ値があります。基本的な使用法は次のとおりです。
array_fill(int $start_index, int $num, mixed $value): array
$ start_index :アレイの開始インデックスを入力します。
$ num :埋める要素の数。
$値:配列内の各要素の値。
たとえば、各要素の値が100の長さ5の配列を作成できます。
$array = array_fill(0, 5, 100);
print_r($array);
出力:
Array
(
[0] => 100
[1] => 100
[2] => 100
[3] => 100
[4] => 100
)
Array_fill_keys()は、指定されたキーに基づいて配列を入力し、指定された各キーに対して同じ値を設定します。基本的な使用法は次のとおりです。
array_fill_keys(array $keys, mixed $value): array
$キー:キーを含む配列。
$値:指定されたキーに対応する値。
たとえば、キー名の配列と記入する値があるとします。
$keys = ['a', 'b', 'c'];
$array = array_fill_keys($keys, 100);
print_r($array);
出力:
Array
(
[a] => 100
[b] => 100
[c] => 100
)
これらの2つの機能は非常に似ているように見えるため、多くの初心者はそれらを混乱させる傾向があります。それらはすべて、配列を埋めるために使用できるという共通点であり、どちらも統一された値を設定できることです。違いは、 array_fill()が配列のインデックスに基づいて要素を入力し、 array_fill_keys()が指定されたキー名に基づいて値を入力することです。
array_fill()は、配列のインデックス範囲に従って配列を入力します。開始インデックスと要素の数を入力する必要があり、連続インデックスで配列を返します。
array_fill_keys()は、特定のキー配列に基づいて新しい配列を入力します。各キーは同じ値に対応し、返された配列のキー名がカスタマイズされます。
したがって、最も根本的な違いは、1つはインデックスで記入することであり、もう1つはキー名で記入することです。
さまざまなニーズに応じて、これら2つの機能を使用することを選択します。
連続インデックスで配列を入力する必要がある場合は、 array_fill()を使用します。たとえば、インデックスを初期化するときに配列を使用して、特定の数の要素を埋めることができます。
例:
$array = array_fill(0, 3, 'PHP');
カスタムキー名に基づいて配列を入力する必要がある場合は、 array_fill_keys()を使用します。この状況は、多くの場合、連想配列の初期化に使用されます。
例:
$keys = ['name', 'age', 'gender'];
$array = array_fill_keys($keys, 'unknown');
array_fill()とarray_fill_keys()の関数には配列の塗りつぶしが含まれますが、使用シナリオと充填方法は異なります。それらの違いを理解することにより、特定のニーズに応じて配列を操作するための適切な関数を柔軟に選択できるようになります。
これら2つの機能を合理的に使用することにより、PHPコードを作成する効率を大幅に改善し、実際の開発の混乱を避けることができます。