7
votes

Normaliser le cas des touches de tableau dans PHP

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 xxx

mais cela semble être un moyen de le faire "en place".

MISE À JOUR : On dirait qu'il y a un intégré, le non nommé trompeusement jamais oublié par moi array_change_key_case . 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.


2 commentaires

Pour l'approche algorithmique, j'irais avec la version "pragmatique" de Soulmerge ci-dessous.


Ce message explique ce dont vous avez besoin


5 Réponses :


0
votes
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;
}

0 commentaires

13
votes

Je pense que array_change_key_case fait ce que vous recherchez.

http://us3.php.net/ Manuel / FR / Fonction.Array-Change-Key-Case.php


0 commentaires


4
votes

J'ai trouvé que les fonctions intégrées sont beaucoup plus rapides que des boucles lors du traitement de grandes matrices. Cela pourrait faire ce que vous voulez (Code non testé): xxx

modifier ou l'approche pragmatique (devrait être beaucoup plus rapide): xxx < / pré>


1 commentaires

Ouais, les produits vont presque toujours être plus rapide. Quand il est compilé C vs. PHP Opt-Code, devinez qui gagne :)



0
votes

Prise en charge des tableaux multidimensionnels, inspiré de Ceci Commentaire manuel PHP : xxx

Pour une meilleure performance, il utilise le natif array_change_key_case () fonction PHP.


0 commentaires