0
votes

Y a-t-il un moyen plus rapide de comparer plusieurs tableaux dans PHP?

J'ai un problème de performance lent dans la comparaison de plusieurs tableaux.

L'algorithme que j'ai fabriqué est:

Je serai en boucle d'abord les tableaux par foreach xxx

afin de comparer plusieurs tableaux, J'utilise seulement ceci si condition et symbole comparatif (==). Mais je pense que si


2 commentaires

Cela dépend de l'endroit où vient le tableau d'origine. Il peut être possible de procéder à ce traitement à ce stade plutôt que de devoir boucler dans la matrice et de vérifier les détails. Il est généralement plus rapide de réduire le nombre d'appels de base de données dans la mesure du possible pour la performance.


La solution optimale que ce code est de le supprimer, car cela ne fait rien.


3 Réponses :


0
votes

Ne faites pas référence à la base de données de la boucle, vous pouvez utiliser Array_Column pour exporter une matrice de branches vers des colonnes "UserID" et "UserbranchID" fin de la requête de construction en utilisant "où"


0 commentaires

0
votes

Je suis d'accord avec @Thaiha, vous pouvez réduire vos requêtes à une seule et après avoir effectué la comparaison des tableaux. Par exemple, dans MySQL, vous pourriez faire quelque chose comme.

select * from `permissions` where (`user_id `, `branch_id `) in (('1', '2'), ('2', '4'));


0 commentaires

0
votes

au lieu d'une matrice en boucle. Je suggère d'utiliser un chargement impatient à la place.

Modèle de branche xxx

et dans votre contrôleur xxx

lire le document ici : https://laravel.com/docs/6.x/eloquent-RelationShips


0 commentaires