Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Scomporre una variabile

    Salve,
    devo sapere, data una variabile $sconto, quanti caratteri '+' ci sono e salvare tutti i numeri in delle variabili.

    Esempio:
    $sconto = 30+20+10 (ma potrebbe anche essere 30+20, oppure 30+20+10+5... o anche semplicemnte 30).
    Mi interesserebbe sapere che i '+' sono due (o uno, o tre o zero) e salvare in delle variabili i valori passati.

    Avevo pensato di fare in questo modo:
    list($var1,$var2,$var3) = explode('+',$sconto);

    Il problema è che il valore di sconto viene deciso da una form e quindi non è fisso.

    Sapete aiutarmi?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    Se vuoi sapere quanl'è il numero dei "+" ti basta usare il count:
    Codice PHP:
    $tua_variabile=explode('+',$sconto);
    $num=count($tua_variabile); 
    poi per trattare i valori puoi usare le funzioni per gli array....

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128

    a volte basta poco..

    fonte: www.php.net
    Codice PHP:
    <?php
    // Esempio 1
    $pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces explode(" "$pizza);
    echo 
    $pieces[0]; // piece1
    echo $pieces[1]; // piece2

    // Esempio 2
    $data "foo:*:1023:1000::/home/foo:/bin/sh";
    list(
    $user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
    echo 
    $user// foo
    echo $pass// *

    ?>
    quello che servirebbe a te:
    Codice PHP:
    <?php

    $sconto 
    "30+10+20+40";

    $pezzi explode("+",$sconto);

    for (
    $i=0;$pezzi[$i];$i++)
        print 
    "$pezzi[$i]
    \n"
    ;

    ?>
    Ogni tanto sarebbe opportuno leggere il manuale :berto:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.