Ho delle stringhe di questo tipo
,MA1,MI2,FA1,FI2,
,,MI1,GR2,FA1,
,MA2,MI1,GR2,FA2,FI1
E vorrei metterle in questo modo in output(prendo come esempio questa ,MA1,MI2,FA1,FI2,)
MA MI FA FI
1 2 1 2
Come faccio?
Sto uscendo pazzo...
Grazie
Ho delle stringhe di questo tipo
,MA1,MI2,FA1,FI2,
,,MI1,GR2,FA1,
,MA2,MI1,GR2,FA2,FI1
E vorrei metterle in questo modo in output(prendo come esempio questa ,MA1,MI2,FA1,FI2,)
MA MI FA FI
1 2 1 2
Come faccio?
Sto uscendo pazzo...
Grazie
con substr prendi i primi due caratteri, ed in seguito il terzo. questo per ogni espressione
Codice PHP:
$str = "MA1";
$str1 = substr($str,0,2);
$str2 = substr($str,2,1);
PHP LEARN - Guide, tutorial e articoli sempre aggiornati
NUOVO: standardLib; il potente framework PHP é ora disponibile
*******************************************
Scarica oggi la tua copia di MtxEventManager
Ti ringrazio per la risposta ma il problema è un pò più complesso.Originariamente inviato da lupinvv
Ho delle stringhe di questo tipo
,MA1,MI2,FA1,FI2,
,,MI1,GR2,FA1,
,MA2,MI1,GR2,FA2,FI1
E vorrei metterle in questo modo in output(prendo come esempio questa ,MA1,MI2,FA1,FI2,)
MA MI FA FI
1 2 1 2
Come faccio?
Sto uscendo pazzo...
Grazie
In pratica le stringhe che io ho sono varie e in questa modalità
,MAx,MIx,GRx,FAx,FIx, dove x sta per un numero da 0 a 99
Però la stringa non è sempre così,ovvero alcuni elementi potrebbero mancare,potrebbe essere anche come sotto
,MAx,GRx
,FIx
,MIx,FAx
Però a me serve mettere sempre i dati in questo modo e in questo ordine
MA MI GR FA FI
x x x x x
Quindi bisognerebbe estrarre dalla stringa i pezzi tra una virgola e l'altra,fare u confronto per capire se sono MA,MI,GR... e poi estrarre il numero associato e mettere tutto sotto la forma
MA MI GR FA FI
x x x x x
Spero di essermi spiegato bene
Grazie
Forse così dovrebbe funzionare
ti potresti fare una funzioncinaCodice PHP:
$str = ",MA1,MI2,FA1,FI2,";
$str_t = eregi_replace("[0-9,]"," ",$str);
$str_n = eregi_replace("[a-zA-Z,]"," ",$str);
echo $str_t."
".$str_n;
la richiami cosìCodice PHP:
function filtra($str){
$str_t = eregi_replace("[0-9,]"," ",$str);
$str_n = eregi_replace("[a-zA-Z,]"," ",$str);
return print $str_t."
".$str_n;
}
Codice PHP:
$str = ",MA1,GR2
,FI1
,MI2,FA1";
filtra($str);
Ti ringrazio ancora per la risposta ma neanche così funziona forse perchè non mi sono spiegato bene io.
Se ho una stringa di questo tipo
$str = ",MA1,MI2,FA1,FI2,";
Devo riuscire a leggere la stringa e capire dopo MA che numero c'è e metterlo in questa forma
MA
1
Dopo MI che numero c'è e metterlo così
MA MI
1 2
Ma la stringa potrebbe anche non avere MA per esempio...
Capito?
Fammi sapere
Grazie
Perchè ad esempio se MA non esiste mi deve mettere uno 0 non mi deve lasciare lo spazio vuoto o saltarla completamente capito?
Oppure partendo da questa che potrebbe avvicinarsi alla soluzione
$str = ",MA1,MI2,FA1,FI2,";
$str_t = eregi_replace("[0-9,]"," ",$str);
$str_n = eregi_replace("[a-zA-Z,]"," ",$str);
echo $str_t."
".$str_n;
potrei ora confrontare str_n per vedere se è nella forma MA,MI,GI,FA,FI e se manca qualcosa potrei aggiungerlo e aggiungere lo 0 in str_t?Ma come?
potrei magari fare un test del genere?
if (strpos ($str,"MA")==0){
$risfin= "MA0".$risfin;
}
E per MA ho risolto.Ma per quelli innestati tipo MI GR FA come faccio?Come faccio ad inserire una stringa o un numero in una posizione precisa di una stringa?