Tengo 2 matrices muy grandes (de tamaño ~ 2,500,000). Necesito encontrar la diferencia entre estas matrices. Por diferencia quiero decir que necesito una matriz resultante con valores que están en la matriz 1 pero no en la matriz 2. He usado array_diff() pero ¡toma más de media hora!La mejor manera de encontrar diferencias entre dos matrices grandes en PHP
La primera matriz proviene de una base de datos y una segunda serie de otra base de datos. No están en el mismo servidor de base de datos. Las matrices no son del mismo tamaño. Estoy lidiando con una gran cantidad de números móviles. Necesito encontrar esos números móviles que están en una lista, pero no están en otra lista
Las matrices son matrices normales con teclas numéricas. diff código es el siguiente:
$numbers_list = array_diff($numbers_list, $some_other_list);
¿Hay una mejor manera de hacer esto? Por favor ayuda.
Aunque no estoy familiarizado con las funciones internas de PHP, parece probable que 'array_diff()' haya pasado por varias rondas de optimización y probablemente sea más rápido que cualquier función de diferencia de matriz general que ejecute por su cuenta . Si nos dio una mejor idea sobre la estructura de sus datos, podría haber una forma más rápida de calcular las diferencias para las matrices particulares que está viendo. O, como comentaron los comentaristas anteriores, es posible que desee tomar el diff de la base de datos primero. –
Si sus números (números reales, es decir, interpretables como enteros) usted debería ser capaz de "ordenar" ambos, y recorrer el conjunto 1, avanzando el puntero con 'siguiente' en el conjunto 2, siempre y cuando valor-en-2 < valor en 1, y así sucesivamente. Para este caso particular, podría ser mucho más rápido. – Wrikken
En ese caso, podría ser más fácil volcar los datos de cada base de datos a un archivo de texto, y comparar usando una herramienta de línea de comandos como diff en lugar de intentarlo en PHP; o hacer un volcado de un db, cargarlo en una tabla temporal en el segundo y usar SQL para hacer la comparación. –