Position actuelle: Accueil> Derniers articles> Comment utiliser Array_Keys pour éviter les clés en double dans les tableaux? FAQ pour les débutants pour PHP

Comment utiliser Array_Keys pour éviter les clés en double dans les tableaux? FAQ pour les débutants pour PHP

gitbox 2025-09-11
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article ne produit que le contenu de l&#39;article comme exemple,Aucune logique réelle impliquée</span></span><span>
</span><span><span class="hljs-comment">// --------------------------- texte ---------------------------</span></span><span>

</span><span><span class="hljs-meta">?></span></span><span>

<h1>Comment l&#39;utiliser array_keys Évitez les erreurs en double dans les clés du tableau?PHP Des questions fréquemment posées au débutant</h1>

<p>exister PHP milieu,Les tableaux sont des structures de données très flexibles,Peut stocker les clés et les valeurs en même temps。Cependant,Un problème que les débutants rencontrent souvent:当你exister数组milieu不小心定义了重复的键,La valeur définie plus tard écrasera la valeur précédente,Provoque une perte de données ou des erreurs logiques。</p>

<h2>Situations communes de duplication des clés de tableau</h2>
<p>Donner un exemple simple:</p>

<pre><code </span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span>="</span><span><span class="hljs-title">language</span></span><span>-</span><span><span class="hljs-title">php</span></span><span>">
$</span><span><span class="hljs-title">data</span></span><span> = [
    "</span><span><span class="hljs-title">id</span></span><span>" => 1,
    "</span><span><span class="hljs-title">name</span></span><span>" => "</span><span><span class="hljs-title">Alice</span></span><span>",
    "</span><span><span class="hljs-title">id</span></span><span>" => 2
];

</span><span><span class="hljs-title">print_r</span></span><span>($</span><span><span class="hljs-title">data</span></span><span>);
</</span><span><span class="hljs-title">code</span></span><span>></</span><span><span class="hljs-title">pre</span></span><span>>

<</span><span><span class="hljs-title">p</span></span><span>>Après avoir coulé,数组milieu只会保留最后一次的 <</span><span><span class="hljs-title">code</span></span><span>>"</span><span><span class="hljs-title">id</span></span><span>" => 2</</span><span><span class="hljs-title">code</span></span><span>>,La première fois que je l&#39;ai défini <</span><span><span class="hljs-title">code</span></span><span>>"</span><span><span class="hljs-title">id</span></span><span>" => 1</</span><span><span class="hljs-title">code</span></span><span>> A été couvert。</</span><span><span class="hljs-title">p</span></span><span>>

<</span><span><span class="hljs-title">h2</span></span><span>>Comment utiliser </span><span><span class="hljs-title">array_keys</span></span><span> Vérifiez la clé de répétition?</</span><span><span class="hljs-title">h2</span></span><span>>
<</span><span><span class="hljs-title">p</span></span><span>><</span><span><span class="hljs-title">code</span></span><span>></span><span><span class="hljs-title">array_keys</span></span><span>()</</span><span><span class="hljs-title">code</span></span><span>> 函数可以返回数组milieu所有键组成的新数组,Nous pouvons l&#39;utiliser pour détecter s&#39;il y a des clés en double。</</span><span><span class="hljs-title">p</span></span><span>>

<</span><span><span class="hljs-title">pre</span></span><span>><</span><span><span class="hljs-title">code</span></span><span> </span><span><span class="hljs-title">class</span></span><span>="</span><span><span class="hljs-title">language</span></span><span>-</span><span><span class="hljs-title">php</span></span><span>">
$</span><span><span class="hljs-title">data</span></span><span> = [
    "</span><span><span class="hljs-title">id</span></span><span>" => 1,
    "</span><span><span class="hljs-title">name</span></span><span>" => "</span><span><span class="hljs-title">Alice</span></span><span>",
    "</span><span><span class="hljs-title">id</span></span><span>" => 2
];

$</span><span><span class="hljs-title">keys</span></span><span> = </span><span><span class="hljs-title">array_keys</span></span><span>($</span><span><span class="hljs-title">data</span></span><span>);

// Statistiques Le nombre d&#39;occurrences de clés
$</span><span><span class="hljs-title">keyCounts</span></span><span> = </span><span><span class="hljs-title">array_count_values</span></span><span>($</span><span><span class="hljs-title">keys</span></span><span>);

// Trouver des clés en double
$</span><span><span class="hljs-title">duplicates</span></span><span> = </span><span><span class="hljs-title">array_filter</span></span><span>($</span><span><span class="hljs-title">keyCounts</span></span><span>, </span><span><span class="hljs-title">function</span></span><span>($</span><span><span class="hljs-title">count</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$count</span></span><span> > </span><span><span class="hljs-number">1</span></span><span>;
});

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$duplicates</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Découvrez les touches en double: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$duplicates</span></span><span>));
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aucune touche en double trouvée"</span></span><span>;
}

De cette façon, nous pouvons rapidement découvrir le problème des clés en double dans la logique du programme pour éviter les remplacements de données ultérieurs.

Pratiques plus recommandées

  • Gardez les noms de clés uniques lors de la définition des tableaux.
  • Si le nom de clé provient des données dynamiques, utilisez Array_Keys pour les vérifier et les traiter à l'avance.
  • Si nécessaire, des touches ou des valeurs déduplices en combinaison avec Array_Unique .

Résumer

Les débutants PHP sont enclins à ignorer la superposition des touches de tableau, mais l'utilisation de fonctions telles que Array_Keys peut détecter et éviter les erreurs à l'avance pendant le processus de codage. Une bonne habitude consiste à garder la structure du tableau clair lors de la rédaction de code et de vérifier en cas de besoin, ce qui peut réduire considérablement le coût du débogage.