現在の位置: ホーム> 最新記事一覧> array_fill_keysおよびarray_keysと協力する一般的な方法

array_fill_keysおよびarray_keysと協力する一般的な方法

M66 2025-05-17

PHPでは、アレイは非常に一般的で重要なデータ構造です。プログラミングプロセス中に、多くの場合、配列の検索、フィルタリング、変更、およびその他の操作が必要です。 PHPは、 Array_fill_keysarray_keysが2つの強力な関数であるリッチな配列処理機能を提供します。これら2つの機能を巧みに組み合わせることで、配列操作を最適化し、コード効率を向上させることができます。

array_fill_keysarray_keysの紹介

  • array_keys()
    array_keys()は、配列内のすべてのキー名の配列を返すために使用されます。通常、この関数は、配列内の特定のキーの値を取得する必要がある場合に非常に便利です。

     $array = ['a' => 1, 'b' => 2, 'c' => 3];
    $keys = array_keys($array); // 戻る ['a', 'b', 'c']
    
  • array_fill_keys()
    array_fill_keys()は、指定されたキー名を特定の値で入力するために使用されます。この関数は、渡されたキー名アレイに基づいて新しい配列を生成し、これらのキー名に対応するすべての値を指定された値で埋めます。

     $keys = ['a', 'b', 'c'];
    $filledArray = array_fill_keys($keys, 0); // 戻る ['a' => 0, 'b' => 0, 'c' => 0]
    

array_keysarray_keysをarray_keysと組み合わせて使用​​するための最適化手法

これら2つの機能の組み合わせは、配列に特定のキー名が含まれているかどうかを判断したり、これらのキー名にデフォルト値を割り当てるなど、いくつかの一般的な配列操作を効率的に処理するのに役立ちます。以下は、いくつかの一般的なアプリケーションシナリオです。

1.配列の欠落キーのデフォルト値を設定します

特定のキー名を含む配列があると仮定しますが、配列に特定のキー名が欠落しているかどうかはわかりません。これらのキー名が欠落している場合、それらのデフォルト値を設定する必要があります。現時点では、 array_fill_keysおよびarray_keysと組み合わせて実装できます。

サンプルコード:

 $array = ['a' => 1, 'b' => 2];

// チェックするキー名を定義します
$requiredKeys = ['a', 'b', 'c', 'd'];

// 配列に既存のキー名を取得します
$existingKeys = array_keys($array);

// 欠落しているキー名を見つけます
$missingKeys = array_diff($requiredKeys, $existingKeys);

// 使用 array_fill_keys 欠落しているキー名のデフォルト値を設定します
$defaultValues = array_fill_keys($missingKeys, 0);

// 元の配列を、キー価値のペアが欠落しているとマージします
$finalArray = array_merge($array, $defaultValues);

print_r($finalArray);

出力:

 Array
(
    [a] => 1
    [b] => 2
    [c] => 0
    [d] => 0
)

この例では、 array_keysを使用して配列内の既存のキー名を取得し、 Array_diffを使用して欠落しているキー名を見つけ、 Array_fill_keysを使用してこれらの欠落しているキー名のデフォルト値0を入力し、最後にArray_mergeを介して元のArrayと新しいキー値ペアをマージします。

2。複数のキーのデフォルト値を動的に追加します

複数のキーデフォルト値をアレイに動的に追加する必要がある場合があります。 Array_Keysを介して既存のキー名を抽出し、 Array_fill_keysでデフォルト値を入力すると、コードがより簡潔で効率的になります。

サンプルコード:

 $existingArray = ['x' => 1, 'y' => 2];

// 新しいキー名を定義します
$newKeys = ['a', 'b', 'c'];

// 使用 array_fill_keys 新しいキー名のデフォルト値に入力します
$newValues = array_fill_keys($newKeys, 0);

// 既存の配列と新しいキー価値ペアをマージします
$finalArray = array_merge($existingArray, $newValues);

print_r($finalArray);

出力:

 Array
(
    [x] => 1
    [y] => 2
    [a] => 0
    [b] => 0
    [c] => 0
)

ここでは、最初にarray_fill_keysを介して新しいキー名のデフォルト値0を入力し、それを元の番号と組み合わせて最終結果を取得します。

3。URLを使用した配列の処理

場合によっては、URLを含む配列を処理する必要があり、これらのURLのドメイン名を均一に置き換える必要がある場合があります。 ArrayのすべてのURLドメイン名をM66.netに置き換える必要があると仮定すると、 array_mapを使用してstr_replaceで処理できます。

サンプルコード:

 $urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://m66.net/page3'
];

// すべてを交換します URL ドメイン名
$updatedUrls = array_map(function ($url) {
    return preg_replace('/https?:\/\/(www\.)?[^\/]+/', 'https://m66.net', $url);
}, $urls);

print_r($updatedUrls);

出力:

 Array
(
    [0] => https://m66.net/page1
    [1] => https://m66.net/page2
    [2] => https://m66.net/page3
)

URLのドメイン名を正規表現に置き換えることにより、すべてのURLのドメイン名をM66.NETに簡単に置き換えることができ、バッチ交換操作を完了します。

要約します

array_fill_keysarray_keysを巧みに組み合わせることにより、特に配列キー名を扱う場合、PHPの配列操作を最適化できます。キー名の欠落のデフォルト値を設定したり、動的に新しいキー値を追加したり、URLアレイをバッチするかにかかわらず、これらの機能の組み合わせにより、より効率的で簡潔なコードを書くことができます。実際の開発では、これらの配列関数を合理的に使用すると、コードの読みやすさと実行効率を大幅に改善できます。