PHP: reemplace instancias duplicadas de cadena dentro de la matriz, más complejo de lo que parece

StackOverflow https://stackoverflow.com/questions/4928130

Pregunta

Publicar por primera vez aquí después de tener excelentes resultados en busca de otras respuestas en StackOverflow. He llegado a un obstáculo en una aplicación que estoy tratando de construir. Implica trazar un gráfico con JS utilizando valores dinámicos extraídos de una base de datos.

Ahora estoy en el punto en que tengo todos los valores que necesito para trazar un gráfico usando una biblioteca JavaScript. El requisito básico para trazar un gráfico es una matriz básica que se parece a esto:

var plot1 = [ [2,15], [4,23], [5,25] ];

En mi caso de [x, y] x = fecha e y = clics. Con esos datos, puede llamar a la función así:

$.plot($("#placeholder"), [ plot1 ];

Esto hace todo el trabajo para usted y construye un pequeño gráfico agradable. En mi caso hago todo esto dinámicamente. Aquí es donde estoy atrapado. Tengo una matriz que genera esto cuando se imprime:

Array ( 
    [0] => var test7 = [[1, 1]]; 
    [1] => var test2 = [[1, 1]]; 
    [2] => var test2 = [[4, 1]]; 
    [3] => var test2 = [[15, 2]]; 
    [4] => var test1 = [[2, 1]]; 
    [5] => var test1 = [[6, 7]]; 
    [6] => var test1 = [[14, 1]]; 
    [7] => var test1 = [[15, 1]]; 
    [8] => var giver = [[3, 2]]; 
    [9] => var giver = [[14, 1]]; 
    [10] => var test4 = [[4, 1]]; 
);

Lo que necesito hacer ahora es agrupar todos los valores que contienen el mismo LinkID (Test2 tiene 3 casos, por ejemplo) en una línea. Así es como necesito que se vea la matriz:

Array ( 
    [0] => var test7 = [[1, 1]]; 
    [1] => var test2 = [ [1, 1], [4, 1], [15, 2] ]; 
    [4] => var test1 = [ [2, 1], [6, 7], [14, 1], [15, 1] ]; 
    [8] => var giver = [ [3, 2], [14, 1] ]; 
    [10] => var test4 = [[4, 1]]; 
);

Desde ese punto, puedo ejecutar un foreach en él y eco de los valores dentro de una etiqueta de script, ¡y estamos en funcionamiento!

¿Sugerencias? Sé que no habrá una sola función incorporada que logre todo lo que necesito en un Swoop rápido. Array_unique () está cerca pero no es lo que necesito. Creo que puedo usar Array_Walk ($ array, devolución de llamada) que acepta una matriz y una función de devolución de llamada que se ejecuta en cada valor dentro de la matriz, pero realmente no estoy seguro de a dónde ir desde allí.

¡Cualquier ayuda es muy apreciada!

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top