Maison > développement back-end > tutoriel php > Comment fusionner des tableaux PHP avec des clés correspondantes et créer des sous-tableaux ?

Comment fusionner des tableaux PHP avec des clés correspondantes et créer des sous-tableaux ?

DDD
Libérer: 2024-10-27 20:33:30
original
1068 Les gens l'ont consulté

How to Merge PHP Arrays with Matching Keys and Create Sub-Arrays?

Fusion de tableaux PHP : combinaison de tableaux avec des clés correspondantes

Cette question explore comment fusionner deux tableaux PHP partageant les mêmes clés. Examinons le problème et la solution.

Problème :

Considérez les deux tableaux suivants :

  • Premier tableau : paires clé-valeur avec des clés représentant les numéros de caméra et des valeurs représentant les adresses IP.
  • Deuxième tableau : paires clé-valeur avec les mêmes numéros de caméra mais des valeurs différentes représentant les noms de caméra.

L'objectif est de fusionner ces tableaux en agrégeant les valeurs correspondant à chaque clé correspondante.

Solution utilisant array_map :

Bien que array_merge_recursive puisse fusionner des tableaux de manière récursive, il nécessite des tableaux avec des paires clé-valeur correspondantes . Une solution personnalisée utilisant array_map peut obtenir le résultat souhaité :

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);
    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
    $results += array_merge_recursive($a, $b);
}, $array1, $array2);
Copier après la connexion

Explication :

  • Pour chaque clé du premier tableau, elle crée un sous- tableau avec une clé 'ip' et une valeur définie sur la valeur d'origine.
  • De même, pour chaque clé du deuxième tableau, il crée un sous-tableau avec un 'nom' de clé et une valeur définie sur la valeur d'origine. .
  • Enfin, il utilise array_merge_recursive pour fusionner les sous-tableaux partageant le même numéro de caméra.

La sortie est un tableau avec des clés représentant les numéros de caméra et les valeurs sous forme de sous-tableaux contenant Propriétés 'ip' et 'name'.

En tirant parti de array_map et de la manipulation de clés personnalisées, cette solution fusionne efficacement les tableaux avec les clés correspondantes tout en préservant la structure clé-valeur.

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