Visualizzazione risultati 1 fino 7 di 7

Discussione: Convertire numeri in lettere

  1. #1
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito Convertire numeri in lettere

    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
    ...

  2. #2
    L'avatar di naviland
    naviland non è connesso Utente
    Data registrazione
    31-12-2009
    Messaggi
    128

    Predefinito

    Php ha una funzione apposita

    Codice PHP:
    string chr ( int $ascii )
    Restituisce una stringa di un carattere corrispondente al carattere ASCII con quel valore.
    Quindi condiserando che la "a" minuscola è il numero 97 per usare la funzione con i numeri da 1 in su dovrai fare

    Codice PHP:
    chr (96+$var );
    http://php.net/manual/en/function.chr.php

  3. #3
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Quindi se volessi prelevare l'ultimo numero di una cifra e trasformarlo in lettera

    Codice PHP:
    $var= 125 ;

    $ris = chr($var[-1]);
    A video dovrebbe riuscire a stamparmi E?
    Oppure no?

  4. #4
    L'avatar di naviland
    naviland non è connesso Utente
    Data registrazione
    31-12-2009
    Messaggi
    128

    Predefinito

    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

  5. #5
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    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?

  6. #6
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    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

  7. #7
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Citazione Originalmente inviato da NLSweb Visualizza messaggio
    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;
    
    ?>
    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];

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •