Maison >développement back-end >tutoriel php >Comment gérer les clés en double dans les tableaux associatifs PHP ?

Comment gérer les clés en double dans les tableaux associatifs PHP ?

DDD
DDDoriginal
2024-12-15 15:58:16400parcourir

How to Handle Duplicate Keys in PHP Associative Arrays?

Comment gérer les clés en double dans les tableaux associatifs PHP

Un tableau associatif est une structure de données qui stocke des paires clé-valeur, permettant une récupération efficace des valeurs en fonction de leurs valeurs associées. clés. Cependant, par défaut, les tableaux associatifs n'autorisent pas les clés en double.

Considérez le code suivant :

function array_push_associative(&$arr) {
    $args = func_get_args();
    foreach ($args as $arg) {
        if (is_array($arg)) {
            foreach ($arg as $key => $value) {
                $arr[$key] = $value;
                $ret++;
            }
        } else {
            $arr[$arg] = "";
        }
    }
    return $ret;
}

Cette fonction tente d'ajouter des valeurs à un tableau associatif, mais écrase toute clé existante avec le même nom. Par exemple, si vous l'utilisez pour créer un tableau comme celui-ci :

$arr = [];
array_push_associative($arr, ['42' => 56], ['42' => 86], ['42' => 97]);

...vous obtiendrez :

$arr = ['42' => 97];

Pour surmonter cette limitation, envisagez de construire un structure de tableau imbriquée. Au lieu d'avoir des clés en double, vous pouvez utiliser des clés uniques qui correspondent à des tableaux contenant plusieurs éléments. Par exemple :

$arr = [
    '42' => [56, 86, 97],
    '51' => [64, 52],
];

De cette façon, vous pouvez accéder à plusieurs entrées associées au même identifiant via la structure de tableau imbriqué.

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