Maison >développement back-end >tutoriel php >Comment puis-je conserver les types de clés lors de la fusion de tableaux en PHP ?

Comment puis-je conserver les types de clés lors de la fusion de tableaux en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-12 14:51:01565parcourir

How Can I Preserve Key Types When Merging Arrays in PHP?

Préserver les types de clés lors de la fusion de tableaux en PHP

En PHP, vous pouvez rencontrer le besoin de combiner deux tableaux tout en conservant la chaîne d'origine et les indices entiers. Cependant, la fonction par défaut array_merge() réindexe le tableau résultant avec des entiers consécutifs.

Code original avec problème

// Array with string-indexed pairs
$staticIdentifications = [
    'userID'   => 'USERID',
    'username' => 'USERNAME'
];

// Array with integer-indexed pairs
$companyVarIdentifications = CompanyVars::getIdentificationVarsFriendly($_SESSION['companyID']);

// Unsuccessful Attempt to Merge with Preserved Key Types
$idVars = array_merge($staticIdentifications, $companyVarIdentifications);

Solution : ajout de tableau

Pour conserver les types de clés lors de la fusion, utilisez l'opérateur à la place de array_merge() :

$idVars = $staticIdentifications + $companyVarIdentifications;

Cette opération concatène les deux tableaux tout en conservant leurs types de clés respectifs. Le tableau $idVars résultant contiendra à la fois des clés de chaîne et des clés entières, reflétant les structures d'origine des tableaux d'entrée.

Avantages de l'ajout de tableau

Contrairement à array_merge(), l'ajout de tableau :

  • Préserve les types de clés d'origine, cruciaux pour maintenir les associations entre les clés et les valeurs.
  • Évite une réindexation inattendue, qui peut rompre les références aux éléments du tableau en fonction de leurs indices.
  • Fournit une approche plus simple et plus directe de la concaténation de tableaux.

Dans ce cas spécifique, le tableau $idVars aura à la fois des clés de chaîne (par exemple, 'userID') et des clés entières (par exemple, 123), permettant accès aux valeurs basées sur les deux types de clés.

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!

Déclaration:
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