J'ai 1 matrice que je veux ré-indexer. J'ai trouvé que qui est plus rapide pour un très grand tableau? Je comparais cela, mais je ne sais pas comment et ne sais pas le grand tableau encore. P> Avant Redex Index: P> array_values code>
et array_merge code>
Les fonctions peuvent faire le travail (et je n'ai pas besoin de 2 tableaux Pour le array_merge code> fonctionner au travail).
Array
(
[0] => AB
[1] => EA
[2] => FA
[3] => DA
[4] => AF
)
4 Réponses :
Array_Values est censé faire exactement ce que vous voulez faire. Array_Merge est censé faire autre chose et vous avez une solution de contournement pour le faire fonctionner sur votre cas. (Bien que vous ayez peut-être des problèmes si une valeur non numérique est oubliée dans les index). P>
Je ne sais pas s'il existe des différences de performance significatives, mais à coup sûr le code écrit avec Array_Values est plus facile à lire. Et je ne pense pas qu'une fonction censée faire quelque chose est plus lente que celle voulue pour faire autre chose. P>
J'espère que cela aide. P>
Je n'ai pas fait les points de repère non plus - et si vous devez être sûr, vous devriez les faire. P>
Cela dit, je soupçonnerais que si on est préférable à l'autre, Array_Values () va être la voie à suivre. p>
Après tout, ce que vous voulez faire est exactement ce que Array_Values () a été conçu pour. p>
Il est important de noter que array_merge () code> ne réinitialisera que les touches de tableau s'il n'y a pas de touches de chaîne dans la matrice. P>
J'ai eu la marque de banc, Array_Value est 3 fois plus rapide (désolé de répondre à ma propre question, la section de commentaire ne conserve pas le format)
pour et une matrice avec des éléments de 8043 éléments p>
Les valeurs de tableau ont pris 0,003291130065918 secondes. p>
la fusion de matrice a pris 0,0096800327301025 secondes. p>
$ shuf est le tableau non indexé p>
ci-dessous est le code de l'exécution de la référence (copié-le de la Web) p>
Merci pour cette clarification! Peut-être que vous pourriez accepter celui-ci comme réponse ici :)
J'ai eu la marque de banc, Array_Value est 3 fois plus rapide pour et une matrice avec des valeurs de réseau de 8043 éléments a pris 0,003291130065918 secondes. Fusion de tableau a pris 0,0096800327301025 secondes. $ shuf est le tableau non indexé ci-dessous est le code de l'exécution du repère (copié-le sur le Web) $ SHA1_START = Microtime (true); $ arraymerge = array_merge ($ shuf); $ shal_elapsed = microtime (vrai) - $ SHA1_START; $ start = microtime (vrai); $ arrayvalue = array_values ($ shuf); $ écoulé = microtime (vrai) - $ départ; echo "Les valeurs de tableau
ont pris des secondes de $ écoulées."; echo "
matry fusion a pris des secondes $ Shal_elapsed.";