PHPでは、 array_keysとarray_fill_keysは、一般的に使用される2つの配列関数です。 array_keysは、配列内のすべてのキーを取得するのに役立ちますが、 array_fill_keysは指定されたキーを使用して同じ値で配列を入力できます。これらの2つの機能を組み合わせて使用して、非常に実用的な操作を実現できます。
array_keys関数は、配列内のすべてのキー名を返します。その構文は次のとおりです。
array_keys(array $array, mixed $value = null, bool $strict = false): array
$配列:入力配列。
$ value (オプション):このパラメーターが提供されている場合、 array_keysはすべてのキーを$ valueの値で返します。
$ strict (オプション): trueに設定されている場合は、厳密な比較を実行します。
array_fill_keys関数は、提供されたキー名配列に基づいて新しい配列を入力でき、すべての値は指定された値に設定されます。その構文は次のとおりです。
array_fill_keys(array $keys, mixed $value): array
$キー:キー名を含む配列。
$値:埋めるために使用される値。
これら2つの機能を組み合わせることにより、最初にarray_keysを介して配列内のすべてのキー名を取得し、次にarray_fill_keysを使用してこれらのキーの値をリセットできます。
複数のキー値ペアを含む配列があり、この配列内のすべてのキーの値を0などの指定された値にリセットする必要があるとします。
<?php
// オリジナル配列
$array = [
'apple' => 10,
'banana' => 20,
'cherry' => 30,
];
// 使用 array_keys すべてのキー名を取得します
$keys = array_keys($array);
// 使用 array_fill_keys 値をリセットします
$newArray = array_fill_keys($keys, 0);
// 出力リセット配列
print_r($newArray);
?>
array_keys($ array) :この関数は、array $ arrayのすべてのキー名を返します。その結果、 「リンゴ」 、 「バナナ」 、 「チェリー」を含む配列ができました。
array_fill_keys($ keys、0) : array_fill_keys関数を使用して、 $ keys arrayと同じキー名を持つ新しいarrayを作成しますが、すべての値は0で満たされています。
Array
(
[apple] => 0
[banana] => 0
[cherry] => 0
)
上記のように、すべてのキーの値は0に正常にリセットされています。
この手法は、特にアレイの値を再現する必要がある場合、ビッグデータを扱う場合に非常に便利です。データベースからさまざまなデータの配列を取得し、データをリセットまたは初期化すると、この方法がコードを効果的に簡素化できるとします。
array_fill_keysを使用する場合、キー名の渡された配列が有効であることを確認してください。 KeyName配列が空の場合、 array_fill_keysは空の配列を返します。
元の配列のいくつかのキー名が削除されている場合、またはリセットする値が元の配列の値と異なる場合、 array_fill_keysは元の値を簡単に上書きできます。