Cómo comparar dos matrices de datos y calcular diferencias de posición

A veces, es posible que deseemos comparar dos matrices de datos y determinar la diferencia posicional de cada valor en la matriz de uno a otro. Un ejemplo de tal aplicación de esto podría ser similar a lo que ve cuando un sitio web realiza un seguimiento de la posición de un lenguaje de programación, por ejemplo. Considere el índice Tiobe que rastrea la posición de un lenguaje de programación de mes a mes. Otro ejemplo de este tipo de escenario podría ser algo como http://stats.js.org . Veamos cómo podemos usar PHP para calcular dos matrices de datos para lograr un tipo de efecto similar.


Cómo calcular la diferencia con matrices basadas en índices

jquery ganó 3
VueJS ganó 6
d3 no cambió el
meteorito ganó 2
FreeCodeCamp ganó 3
angular.js perdió 4
reaccionó perdió 2

Primero, tenemos una vieja matriz de datos. En él, tenemos varias bibliotecas de JavaScript para trabajar. En este primer ejemplo, podemos ver que es una matriz simple basada en índices. El algoritmo, por así decirlo, es comenzar a recorrer el conjunto de datos más nuevo. En cada iteración del ciclo, queremos capturar el valor de la iteración actual en una variable. Con eso, podemos usar array_search para encontrar este valor actual tal como existía en la matriz anterior. Una vez que tenemos esa información, comprobamos si es una entrada nueva o no. Si array_search devuelve falso, entonces sabemos que tenemos una nueva entrada en la nueva matriz. En este caso, solo decimos que la nueva entrada ganó cualquiera que sea el valor absoluto desde el final de la nueva matriz. Si array_search devuelve un valor entero, ahora tenemos la posición del valor iterativo actual en la matriz anterior. Con esto, ahora podemos configurar la lógica para ver si el valor ha ganado, perdido o no ha cambiado al comparar su posición en la nueva matriz con la anterior. Como podemos ver, cuando ejecutamos el código, calcula las diferencias posicionales tal como queríamos.


Cómo calcular la diferencia con matrices asociativas

¿Qué sucede si las matrices con las que estamos tratando son matrices asociativas y no simples matrices de índice? En este caso, casi todo es igual. Sin embargo, lo que tendremos que hacer en este caso es usar la función array_keys para convertir nuestras matrices asociativas en matrices basadas en índices antes de aplicar los cálculos. Como podemos ver a continuación, el código aún nos da los resultados que esperamos al comenzar con matrices asociativas en lugar de matrices basadas en índices.

jquery ganó 3
VueJS ganó 6
d3 no cambió el
meteorito ganó 2
FreeCodeCamp ganó 3
angular.js perdió 4
reaccionó perdió 2

Cómo comparar dos matrices de datos y calcular las diferencias de posición Resumen

Este tutorial de tipo de sugerencia rápida analizó cómo comparar dos matrices de datos y descubrir las diferencias de cada valor en las matrices. Es posible que pueda encontrar todo tipo de aplicaciones interesantes de este enfoque.