Salve a tutti,
ho una veloce domanda da porvi:
In che modo potrei convertire una variabile numerica in una corrispettiva a lettere?
Faccio un esempio:
$a=1;
$b=2;
$c=3;
...
a video dovranno diventare:
a
b
c
...
Salve a tutti,
ho una veloce domanda da porvi:
In che modo potrei convertire una variabile numerica in una corrispettiva a lettere?
Faccio un esempio:
$a=1;
$b=2;
$c=3;
...
a video dovranno diventare:
a
b
c
...
Php ha una funzione apposita
Restituisce una stringa di un carattere corrispondente al carattere ASCII con quel valore.Codice PHP:
string chr ( int $ascii )
Quindi condiserando che la "a" minuscola è il numero 97 per usare la funzione con i numeri da 1 in su dovrai fare
http://php.net/manual/en/function.chr.phpCodice PHP:
chr (96+$var );
Quindi se volessi prelevare l'ultimo numero di una cifra e trasformarlo in lettera
A video dovrebbe riuscire a stamparmi E?Codice PHP:
$var= 125 ;
$ris = chr($var[-1]);
Oppure no?
No sbagliato (o forse giusto dipende se la tua "e" è maiuscola per caso o no)
Nella codifica ASCII "e" ed "E" sono due lettere diverse con valori diversi.
Se vuoi che il 5 diventi una "e" minuscola si è corretto se la vuoi maiuscola devi fare 64+5 e non 96+5
http://upload.wikimedia.org/wikipedi...Table-wide.svg
No va benissimo che sia maiuscola, anzi è più ordinato. Però il codice non funge, non mi da nessun risultato.
Detto in parole povere sto cercando di trasformare gli ultimi due numeri di un id auto increment in due lettere distinte (es 215 diventerebbe AE, 134 diventerebbe CD), però quanto scritto sopra non da nessun risultato.
Mi chiedo se substr non funzioni con le variabile numeriche e in tal caso, se dovessi prima convertire una variabile numerica in stringa mi basterebbe racchiuderla tra virgolette?
ecco il codice , e questo e' l'esempio ..
Codice:<?php $numero = 1234; $stringa = strval($numero); $lunghezza = strlen($stringa); $primelettere = substr($stringa,0,$lunghezza-2); $ultimalettera = substr($stringa,$lunghezza-1,1); $ultimonum = intval($ultimalettera); $penultimalettera = substr($stringa,$lunghezza-2,1); $penultimonum = intval($penultimalettera); $alfabeto = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $risultato = $primelettere . $alfabeto[$penultimonum-1] . $alfabeto[$ultimonum-1]; echo "avendo il numero".$numero."<br/>"; echo "la cui lunghezza e' di :".$lunghezza."<br/>"; echo "le prime cifre sono :".$primelettere."<br/>"; echo "il penultimo numero e' :".$penultimonum." che corrisponde alla lettera ".$alfabeto[$penultimonum-1]."<br/>"; echo "l'ultimo numero e' :".$ultimonum." che corrisponde alla lettera ".$alfabeto[$ultimonum-1]."<br/>"; echo "quindi il risultato e' :".$risultato; ?>
Ultima modifica di NLSweb : 19-07-2014 alle ore 16.39.04
Un po' lungo nei passaggi ma in effetti funziona.
Mettendo nell'array solo le lettere fino alla J, con la stessa J avanti a tutte e togliendo i -1 riesco a far corrispondere anche lo 0. Grazie.
Codice PHP:
$stringa = strval($idUser);
$lunghezza = strlen($stringa);
$primelettere = substr($stringa,0,$lunghezza-2);
$ultimalettera = substr($stringa,$lunghezza-1,1);
$ultimonum = intval($ultimalettera);
$penultimalettera = substr($stringa,$lunghezza-2,1);
$penultimonum = intval($penultimalettera);
$alfabeto = array('J','A','B','C','D','E','F','G','H','I');
$C5 = $alfabeto[$penultimonum] . $alfabeto[$ultimonum];