PHP: sostituire le istanze duplicate di stringa all'interno dell'array, più complesso di quanto sembri

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

Domanda

La prima volta che ha pubblicato qui dopo aver avuto grandi risultati alla ricerca di altre risposte su StackOverflow. Ho colpito un blocco stradale in un'app che sto cercando di costruire. Implica la trama di un grafico con JS usando valori dinamici estratti da un database.

Ora sono al punto in cui ho tutti i valori di cui ho bisogno per tracciare un grafico usando una libreria JavaScript. Il requisito di base per tracciare un grafico è un array di base che assomiglia a questo:

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

Nel mio caso di [x, y] x = data e y = clic. Con quei dati, potresti chiamare la funzione in questo modo:

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

Questo fa tutto il lavoro per te e costruisce un bel grafico. Nel mio caso lo faccio tutto dinamicamente. Ecco dove sono bloccato. Ho un array che supera questo quando stampato:

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]]; 
);

Quello che devo fare ora è il gruppo di tutti i valori che contengono lo stesso linkid (Test2 ha 3 istanze per esempio) insieme in una riga. Ecco come ho bisogno dell'array:

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]]; 
);

Da quel momento posso eseguire un foreach su di eco un'eco dei valori all'interno di un tag di script e siamo in funzione!

Suggerimenti? So che non ci sarà una singola funzione integrata che realizza tutto ciò di cui ho bisogno in un rapido colpo. Array_unique () è vicino ma non proprio quello di cui ho bisogno. Penso di poter usare Array_Walk ($ Array, Callback) che accetta un array e una funzione di callback che viene eseguita su ciascun valore all'interno dell'array, ma non sono davvero sicuro di dove andare da lì.

Qualsiasi aiuto è molto apprezzato!

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top