- Home
- Categorie
- Coding e Sistemistica
- PHP
- PROBLEMA con funzione php explode per convertire stringa in array. AIUTO!
-
PROBLEMA con funzione php explode per convertire stringa in array. AIUTO!
salve
ho un problema con la funzione explode
devo creare un array partendo da un file csv che ha come delimitatore la virgola
strutturato in questo modoprodotto,codice,quantita,prezzo
acqua,mg33,4 litri,12
colla,k334,"2,2 gr",15per convertire uso la funzione
$array = explode(",",$stringa);
o anche
$array = split(",",$stringa);
ma il problema nasce per il contenuto della 3 riga nella 3 colonna che contiene la virgola ed è inserito automaticamente nei doppi apici e quando avvio la funzione il risultato per quella riga sballa
Come faccio a correggere la funzione che per quel determinato input possa avere un giusto output?
Ovviamente ora sto risolvendo correggendo a mano il file e variando il delimitatore ma mi occorre che la funzione php lavori sul file originario e non quello modificato da me
grazie mille a tutti
-
ciao
con l'explode o lo split non credo ci siano soluzioni. Hai possibilità di cambiare il formato del csv o è un file che ricevi così senza alcuna possibilità di cambiamento?
-
Ciao speedcrash!
Hai provato con la funzione str_getcsv()? Per esempio:
[php]$csv = array_map('str_getcsv', file($file));
print_r ($csv);[/php]mi dà come output quello che cerchi:
Array ( [0] => Array ( [0] => prodotto [1] => codice [2] => quantita [3] => prezzo ) [1] => Array ( [0] => acqua [1] => mg33 [2] => 4 litri [3] => 12 ) [2] => Array ( [0] => colla [1] => k334 [2] => 2,2 gr [3] => 15 ) )
Ciao,
Guido
-
grazie mille
ho provato questa funzione e devo dire che funziona!
avevo inizialmente fatto delle correzioni a mano al file per risolvere inizialmente il problema.