Maison > développement back-end > tutoriel php > Comment fusionner plusieurs tableaux en un seul tableau en fonction des noms de clés spécifiés en PHP

Comment fusionner plusieurs tableaux en un seul tableau en fonction des noms de clés spécifiés en PHP

WBOY
Libérer: 2023-07-07 16:16:02
original
1444 Les gens l'ont consulté

Comment fusionner plusieurs tableaux en un seul tableau selon le nom de clé spécifié en PHP

En développement, nous rencontrons souvent le besoin de fusionner plusieurs tableaux en un seul tableau selon le nom de clé spécifié. Ce besoin est très courant lorsque l’on travaille avec des données, en particulier lorsque l’on travaille avec des jeux de résultats de bases de données, par exemple. Cet article présentera plusieurs méthodes courantes pour réaliser cette fonction et donnera des exemples de code correspondants.

Méthode 1 : utiliser le parcours en boucle

La méthode la plus simple consiste à utiliser une boucle pour parcourir tous les tableaux et à ajouter les valeurs correspondantes au nouveau tableau en fonction du nom de clé spécifié. L'exemple de code est le suivant :

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);
Copier après la connexion

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Méthode 2 : utilisez la fonction array_map

array_map pour appliquer une fonction de rappel à plusieurs tableaux et renvoyer un nouveau tableau. Nous pouvons utiliser cette fonction pour fusionner plusieurs tableaux. L'exemple de code est le suivant :

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);
Copier après la connexion

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Méthode 3 : Utiliser la fonction array_reduce

La fonction array_reduce est utilisée pour traiter de manière itérative les éléments du tableau, les traiter selon les spécifications spécifiées. fonction de rappel et renvoyer un résultat final. Nous pouvons utiliser cette fonction pour fusionner plusieurs tableaux. L'exemple de code est le suivant :

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);
Copier après la connexion

Exécutez le code ci-dessus, le résultat de sortie est :

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Ce qui précède sont des exemples de plusieurs méthodes courantes pour fusionner plusieurs tableaux en un seul tableau en fonction du nom de clé spécifié. Choisir la méthode appropriée en fonction de la situation réelle peut grandement améliorer l'efficacité et la lisibilité du code. J'espère que cela aide!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal