PHPプログラミングでは、アレイを初期化する必要がある状況に遭遇することがよくあります。特に、いくつかのシリアル化された配列を扱う場合、アレイを手動で初期化することは非常に面倒でエラーが発生しやすい場合があります。幸いなことに、PHPはこれらの配列をより効率的に初期化するのに役立ついくつかの組み込み機能を提供します。その中で、範囲とarray_fill_keysは、シリアル化された配列を迅速に作成し、開発効率を向上させるのに役立つ2つの非常に便利な機能です。
シリアル化された配列とは、要素が連続して開始され、初期値から増加または減少するキーを持つ配列を指します。たとえば、配列[1、2、3、4、5]は、典型的なシリアル化された配列です。通常、各要素を手動で書き込むことなく、そのような配列を特定の方法で自動的に生成する必要があります。
PHPでは、範囲関数を使用して、指定された範囲の配列を作成できます。 3つのパラメーターを受け入れます。
開始:シーケンスの開始値
終了:シーケンスの終了値
ステップ:ステップ値(オプション、デフォルトは1です)
たとえば、範囲を使用すると、1〜10の配列がすばやく作成できます。
$rangeArray = range(1, 10);
print_r($rangeArray);
出力の結果は次のとおりです。
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)
ご覧のとおり、範囲関数は1〜10の配列を正常に作成します。各要素の値は1によって増加されます。
array_fill_keys関数は、指定されたキーに基づいて新しい配列を作成し、各キーに同じ値を割り当てるために使用されます。 2つのパラメーターを受け入れます。
キー:配列または文字列にすることができる配列のキー。
値:各キーに割り当てる値。
たとえば、複数のキーを含む配列を作成する場合、各キーにtrueの値がある場合は、 array_fill_keysを使用できます。
$keys = ['a', 'b', 'c', 'd'];
$value = true;
$filledArray = array_fill_keys($keys, $value);
print_r($filledArray);
出力の結果は次のとおりです。
Array
(
[a] => 1
[b] => 1
[c] => 1
[d] => 1
)
array_fill_keys関数は、指定された各キーを同じ値に初期化し、配列の初期化の効率を改善します。
範囲とarray_fill_keys関数を組み合わせて、シリアル化された配列をすばやく初期化し、指定された値に入力できます。 1〜10の配列を作成したいと仮定し、各要素にはtrueの値があります。次のコードを使用できます。
$keys = range(1, 10);
$filledArray = array_fill_keys($keys, true);
print_r($filledArray);
出力の結果は次のとおりです。
Array
(
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 1
[8] => 1
[9] => 1
[10] => 1
)
ご覧のとおり、範囲関数は最初に1から10の数値を生成し、次にarray_fill_keysはこれらの数値をキーとして取得し、各キーの値をtrueに初期化します。
URLアドレスのバッチを処理し、ドメイン名を均一に変更する必要があるとします。範囲とarray_fill_keysを使用して、シリアル化された配列を生成し、必要に応じてURLのドメイン名を置き換えることができます。 Example.comからM66.netに複数のURLにドメイン名を置き換える必要があると仮定して、以下を示します。
$urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3',
];
$updatedUrls = array_map(function($url) {
return preg_replace('/https:\/\/example\.com/', 'https://m66.net', $url);
}, $urls);
print_r($updatedUrls);
出力の結果は次のとおりです。
Array
(
[0] => https://m66.net/page1
[1] => https://m66.net/page2
[2] => https://m66.net/page3
)
この例では、 array_map関数を使用してすべてのURLアドレスを処理し、ドメイン名をM66.netに置き換えます。
範囲とarray_fill_keys関数を使用すると、シリアル化された配列をすばやく初期化し、手動で執筆する配列要素の手間を削減し、プログラミング効率を改善できます。 preg_replaceまたはその他のメソッドと組み合わせることで、URLのドメイン名交換タスクを効率的に処理し、コードのシンプルさと保守性をさらに向上させることができます。