Newsgroup: it.comp.www.php
Titolo: Un consiglio !!!!

Ho un numero di 4 cifre  --- esempio 2465 oppure 8537 , desidero
inserire ogni cifra in una variabile
esempio
$a = 2
$b = 4
$c = 6
$d = 5
qualcuno mi potrebbe dare qualche suggerimento 
grazie


Sarebbe più corretto dire:
$a[1] = 2
$a[2] = 4
$a[3] = 6
$a[4] = 5
L'uso del vettore è più indicato specie in una situazione del genere. Per 
risolvere il tuo problema basta che dividi il numero per 10, fino a quando 
il quoziente diventa 0.  I resti delle divisioni rappresentano le cifre.
2465 / 10 = 246 con resto: 5
246 / 10 = 24 con resto: 6
24 / 10 = 2 con resto 4
2 / 10 = 0 con resto 2
Da notare che ottieni il numero nella sequenza invertita:
$a[1] = 5
$a[2] = 6
$a[3] = 4
$a[1] = 2
per cui, devi procedere a una inversione del vettore. Questo nel caso 
generale, se conosci a priori il numero delle cifre, puoi far puntare 
direttamente all'ultima posizione del vettore decrementando di volta in 
volta l'indice.
In alternativa, (ma è più laborioso) puoi risalire alla dimensione del 
numero "considerandolo" come stringa e vedere quanti byte occupa e quindi 
procedere come sopra.
Se invece non vuoi ricorrere alla stringa puoi usare i logaritmi per 
arrivare a determinare le cifre che compongono il numero.
Le soluzioni ci sono, scegli quella che più ti pare semplice.
Cooper.
PS: Se consideri il numero come stringa, a questo punto puoi anche evitare 
di procedere con le divisioni successive, infatti, se hai:
$a = "2465"  ottieni immediatamente:
$a[0] = 4 // la lunghezza della stringa;
$a[1] = 2 // prima cifra da sinistra;
$a[2] = 4 // seconda cifra da sinistra;
$a[3] = 6 // terza cifra da sinistra;
$a[4] = 5 // quarta cifra da sinistra.
se il tuo è un problema di carattere didattico, è probabile che ti viene 
chiesta la risoluzione del problema, per divisione successiva.
-- 
BlueWare WebStudio
 [web:] 
http://www.blueware.it
 [msn:] 
coo...@blueware.it
 [icq:] 146781935 

 $a = 2
[..]
$a = $number{0};
-- 
www.iuz-lab.info

$v = 'abcd'
$n = 2465;
for ($i = 0, $i < strlen($n); $i++) {
    $$v{$i} = $n{$i};
}
funziona se sai a priori la lunghezza in cifre di $n, cosi' da settare
la stringa $v di conseguenza per il nome delle variabili
se invece il nome delle variabili non e' importante:
$n = 2465;
for ($i = 0, $i < strlen($n); $i++) {
    ${'var_'.$i} = $n{$i};
}

$a[0] = 4 // la lunghezza della stringa; 
in che linguaggio?


Normalmente in tutti i linguaggi (è consuetudine che la posizione 0 di una 
stringa corrisponda alla sua lunghezza), per il php, devi sostituire: $a[0] 
con: strlen($a) per ricavare la lunghezza della stringa.
Cooper.


 con: strlen($a) per ricavare la lunghezza della stringa.
Non proprio.
E` vero per tutti i linguaggi derivati dal Pascal, forse, ma per quelli
derivati dal C (come, vagamente, PHP) no. L'elemento [0] e` il primo
carattere della stringa.
Bye.


Condivido questa osservazione, infatti è cosi, io tuttavia ho posto la 
questione sotto il profilo didattico. Avrai notato che nei libri di 
informatica, quando si parla di algoritmi, e nella fattispecie circa la 
lunghezza di una stringa, viene identificata con la posizione 0.
Probabilmente perchè gli autori ai fini didattici prendono come riferimento 
il pascal o suoi derivati.


<cut>
Se il numero č contenuto (per esempio) in $number, puoi accedere ai 
singoli caratteri utilizzando la sintassi $number{0}, $number{1} etc.
Per maggior sicurezza, prima puoi convertire esplicitamente il numero in 
una stringa con $number=strval($number);
Saluti