ホームページ  >  記事  >  バックエンド開発  >  PHPで指定されたキー名に従って複数の配列を1つの配列にマージする方法

PHPで指定されたキー名に従って複数の配列を1つの配列にマージする方法

WBOY
WBOYオリジナル
2023-07-07 16:12:231405ブラウズ

PHP で指定されたキー名に従って複数の配列を 1 つの配列にマージする方法

開発中、指定されたキー名に従って複数の配列を 1 つの配列にマージする必要がよく発生します。この必要性は、データを操作する場合、特にデータベースの結果セットを操作する場合などに非常に一般的です。この記事では、この機能を実現するための一般的な方法をいくつか紹介し、対応するコード例を示します。

方法 1: ループ走査を使用する

最も簡単な方法は、ループを使用してすべての配列を走査し、指定されたキー名に従って対応する値を新しい配列に追加することです。サンプル コードは次のとおりです。

function mergeArrays($key, ...$arrays)
{
    $result = [];
    
    foreach ($arrays as $array) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
    }
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

方法 2: array_map 関数を使用する

array_map 関数はコールバック関数を適用できます。複数の配列に変換し、新しい配列を返します。この関数を使用して、複数の配列を結合できます。サンプル コードは次のとおりです。

function mergeArrays($key, ...$arrays)
{
    $callback = function ($array) use ($key) {
        return $array[$key] ?? null;
    };
    
    $result = array_map($callback, $arrays);
    
    return array_filter($result, function($value) {
        return $value !== null;
    });
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

方法 3: array_reduce 関数を使用する

array_reduce 関数を使用して、配列内の要素を取得し、指定されたコールバック関数に従って処理し、最終結果を返します。この関数を使用して、複数の配列を結合できます。サンプル コードは次のとおりです。

function mergeArrays($key, ...$arrays)
{
    $callback = function ($result, $array) use ($key) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
        return $result;
    };
    
    $result = array_reduce($arrays, $callback, []);
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

上記は、指定された配列に従って複数の配列を 1 つの配列にマージするいくつかの一般的な方法の例です。キーの名前。実際の状況に応じて適切な方法を選択すると、コードの効率と可読性が大幅に向上します。お役に立てれば!

以上がPHPで指定されたキー名に従って複数の配列を1つの配列にマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。