現在の位置: ホーム> 最新記事一覧> データの再構築には、array_fill_keysとarray_columnを使用します

データの再構築には、array_fill_keysとarray_columnを使用します

M66 2025-06-06

array_fill_keys関数は、指定されたアレイの指定されたキーを指定された値で入力するために使用されます。キー名の配列とパディング値の2つのパラメーターを受信し、指定された配列からキー名が付いた新しい配列を返し、与えられたパディング値である値が付いています。

サンプルコード:
 $keys = ['a', 'b', 'c'];
$value = 0;
$result = array_fill_keys($keys, $value);
print_r($result);

出力:

 Array
(
    [a] => 0
    [b] => 0
    [c] => 0
)

上記の例では、 abcのキー名を含む配列を定義し、 array_fill_keysを使用して値をすべて0に設定します。

2。array_column関数の紹介

array_column関数は、多次元配列から列の値を抽出し、これらの値を含む配列を返すために使用されます。元の配列、列のキー名、およびオプションのインデックスキー名の3つのパラメーターを受け入れます。

サンプルコード:
 $data = [
    ['id' => 1, 'name' => 'John', 'email' => 'john@m66.net'],
    ['id' => 2, 'name' => 'Jane', 'email' => 'jane@m66.net'],
    ['id' => 3, 'name' => 'Doe', 'email' => 'doe@m66.net']
];
$emails = array_column($data, 'email');
print_r($emails);

出力:

 Array
(
    [0] => john@m66.net
    [1] => jane@m66.net
    [2] => doe@m66.net
)

この例では、多次元配列$データからすべての電子メールフィールドの値を抽出し、新しい配列$メールに保存します。

3. Array_fill_keysarray_columnを使用して、効率的なデータ再構成を行います

array_fill_keysarray_columnの組み合わせは、多次元配列から特定のフィールドを抽出し、同じデフォルト値を与えながら新しい配列のキーとして使用する必要がある場合に非常に効率的です。最初にarray_columnを使用して必要な列データを取得し、次にarray_fill_keysを使用して、このデータに基づいて新しい連想配列を生成し、統一された値を割り当てます。

サンプルコード:
 $data = [
    ['id' => 1, 'name' => 'John', 'email' => 'john@m66.net'],
    ['id' => 2, 'name' => 'Jane', 'email' => 'jane@m66.net'],
    ['id' => 3, 'name' => 'Doe', 'email' => 'doe@m66.net']
];

$names = array_column($data, 'name');
$default_value = 'N/A';
$result = array_fill_keys($names, $default_value);

print_r($result);

出力:

 Array
(
    [John] => N/A
    [Jane] => N/A
    [Doe] => N/A
)

この例では、最初にarray_columnを使用してすべての名前フィールドの値を抽出し、次にarray_fill_keysを使用してこれらの値を新しい配列のキー名として使用し、すべての値は「n/a」に設定されます。

4.実際のシナリオ:データベースクエリの結果を処理します

データベースからいくつかのユーザー情報があり、これらのユーザーのIDをキーとして使用し、その電子メールを値として使用して新しい連想配列を生成するとします。この場合、 array_columnarray_fill_keys関数の組み合わせは非常に便利です。

サンプルコード:
 // これがデータベースクエリから得られた結果であると仮定します
$db_result = [
    ['id' => 1, 'name' => 'John', 'email' => 'john@m66.net'],
    ['id' => 2, 'name' => 'Jane', 'email' => 'jane@m66.net'],
    ['id' => 3, 'name' => 'Doe', 'email' => 'doe@m66.net']
];

// 抽出する id そして email
$ids = array_column($db_result, 'id');
$emails = array_column($db_result, 'email');

// 使用 id 鍵として,email 価値として
$user_emails = array_combine($ids, $emails);

print_r($user_emails);

出力:

 Array
(
    [1] => john@m66.net
    [2] => jane@m66.net
    [3] => doe@m66.net
)

この例では、最初にarray_columnを使用してIDフィールド電子メールフィールドの値をそれぞれ抽出し、次にarray_combineを介してidを使用してキーとメールとして値として電子メールとしてマージします。

5。概要

この記事を通して、 array_fill_keysarray_columnがPHPの2つの非常に強力な配列処理機能であることを学びました。 array_fill_keysは、指定されたキー名に基づいて配列を入力できますが、 array_columnは、指定された列の値を多次元配列から抽出できます。これら2つの機能を一緒に使用すると、特にデータをすばやく取得して配列変換を実行する必要がある場合、データを効率的に処理および再構築することができます。

実際のケースのデモンストレーションを通じて、これら2つの機能の使用を習得し、実際の開発にそれらを適用できると思います。開発中に同様の配列処理の問題が発生した場合は、これらの2つの機能を試してください。これにより、コードにより効率とシンプルさが向上します。