Y a-t-il une méthode "meilleure" (fonction intégrée, un meilleur algorithme) pour normaliser le cas de toutes les clés d'une matrice PHP? En boucle et créer une nouvelle gamme fonctionne mais cela semble être un moyen de le faire "en place". P> array_change_key_case code>. Je serais toujours intéressant à voir des approches algorithmiques qui vous permettraient de mieux gérer ce qui se passe lorsque vous appuyez sur "Duplicate" Keys. P> P>
5 Réponses :
foreach(array_keys($old) as $key) { $lower = strtolower($key); //if key is already lower case, do nothing if($key == $lower) continue; $value = $old[$key]; unset($old[$key]); $old[$lower] = $value; }
Je pense que http://us3.php.net/ Manuel / FR / Fonction.Array-Change-Key-Case.php P> array_change_key_case code> fait ce que vous recherchez. p>
J'ai trouvé que les fonctions intégrées sont beaucoup em> plus rapides que des boucles lors du traitement de grandes matrices. Cela pourrait faire ce que vous voulez (Code non testé): modifier strong> ou l'approche pragmatique (devrait être beaucoup plus rapide): p>
Ouais, les produits vont presque toujours être plus rapide. Quand il est compilé C vs. PHP Opt-Code, devinez qui gagne :)
Prise en charge des tableaux multidimensionnels, inspiré de Ceci Commentaire manuel PHP : Pour une meilleure performance, il utilise le natif array_change_key_case () fonction PHP. p> p>
Pour l'approche algorithmique, j'irais avec la version "pragmatique" de Soulmerge ci-dessous.