- Home
- Categorie
- Coding e Sistemistica
- PHP
- Da file.txt ad array multidimensionale
-
Da file.txt ad array multidimensionale
Salve a tutti sono nuovo del sito.
Volevo chiedervi un'iuto perchè non riesco a prendere dei dati da un file e a dividerli.
inizialmente l'array si trova in una pagina e ha questa forma:
$shop = array( array(370, 0),
array( 520, 0),
array(990, 0),
array(1633, 0)}
poi salvo l'array in un file di testo chiamato shop.txt.
A questo punto nel file di testo si forma la seguente stringa:
370 0 , 520 0 , 990 0 , 1633 0 ,
il mio problema è che non riesco più a tornare all'array di partenza(su un'altra pagina).
Potete darmi una mano? grazie mille
-
Scusate.
Mi sono dimenticato di dire che le pagine sono scritte in php
-
Ciao azureangel127 e benvenuto nel Forum GT.
Potresti provare, invece che scrivere i valori uno di seguito all'altro, a dare un newline per ogni valore di array:
370 0\n
520 0\n
990 0\n
1633 0\nQuindi recuperi il contenuto con file() e ti elabori l'array ottenuto per tornare alla situazione di partenza.
-
@azureangel127 said:
Inizialmente l'array ha questa forma:
$shop = array( array(370, 0),array( 520, 0),array(990, 0),array(1633, 0)}Poi salvo l'array in un file di testo chiamato shop.txt.
A questo punto nel file di testo si forma la seguente stringa:
370 0 , 520 0 , 990 0 , 1633 0 ,
il mio problema è che non riesco più a tornare all'array di partenzaCiao,
se puoi intervenire sul codice php che crea il file shop.txt ti consiglio di salvare l'array utilizzando la funzione serialize (php.net/serialize) in questo modo nella seconda pagina puoi leggere il contenuto del file e, attraverso la funzione unserialize (php.net/unserialize), ottenere l'array originale.
se non hai modo di intervenire sul codice che crea il file shop.txt prova questo codice:
[PHP]
// arrOuput conterrà l'array originale
$arrOutput = array();// legge il file shop.txt
$strContent = file_get_contents('shop.txt');
// crea un array per ogni coppia di valori separato dalla virgola
$arrContent = explode(",", $strContent);
// rimuove gli spazi da ogni elemento dell'array
$arrContent = array_map('trim', $arrContent);// cicla le linee del file
foreach ($arrContent as $strLine) {
// memorizza i valori separati da spazi in un array
$arrParts = explode(' ', $strLine);
/* rimuove gli spazi da ogni elemento e assegna il risultato ad un nuovo elemento di arrOuput */
$arrOutput[] = array_map('trim', $arrParts);
}// $arrOutput contiene l'array originale
var_dump($arrOutput);[/PHP]
Spero ti possa essere utile