Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Array andare a capo

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376

    Array andare a capo

    buonasera, io ho una stringa implosa con la virgola, es.

    123,45,55,84,788 e così via...

    devo stampare quella sequenza di numeri ma se è troppo lunga sballa la tabella che la contiene.
    Come posso fare affinchè ad ogni 5 numeri si vada a capo e continui con gli altri numeri?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    esplodi la stringa usando la virgola come separatore, setta una variabile che faccia da contatore, fai partire un ciclo foreach e dentro questo un if che verifica che il contatore non sia uguale a 5.

    se è uguale a cinque, metti un a capo e continui a stampare i valori con la virgola come separatore

    se è diverso, stampi e basta, sempre con la virgola

    Codice PHP:
    <?php
    $stringa 
    "1,2,3,4,5,6,7";

    $dati explode(","$stringa);

    $i 1//contatore per andare a capo
    $o 1//contatore per evitare una virgola di troppo alla fine
    $conta count($dati);

    foreach (
    $dati as $value) {
        if (
    $i == 5) {
            echo 
    "$value
    "
    ;
            
    $i 1//resetto perché vado a capo
            
    $o++;
        }
        else {        
            (
    $conta != $o) ? $value .= "," $value// aggiungo la virgola se non è l'ultimo valore 
            
    echo "$value";
            
    $i++; //incremento il valore
            
    $o++;
        }
    }
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    funziona!! grazie mille sei stato gentilissimo

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Senza voler nulla togliere alla corretta soluzione già proposta, la si potrebbe generalizzare ed ottimizzare leggermente nel ciclo con...

    codice:
    function SpezzaCon($str, $separatore, $datiPerRiga, $interruzione){
        if(!empty ($str)){
            $dati = explode($separatore, $str);
            $i=0; $str="";
            foreach ($dati as $value)
                $str.=$value.((++$i % $datiPerRiga == 0)?$interruzione:$separatore);
            $str=substr($str, 0, strlen($str)-1);
        }
        return $str;
    }
    
    $stringa = "1,2,3,4,5,6,7,8,9,0,9,8,7,6";
    echo SpezzaCon($stringa, ',', 5, "
    ");

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    bellina la funzione

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Sorry c'era un bug che mi è balenato in mente or ora. Questa è corretta sempre indipendentemente dalla stringa di interruzione

    codice:
    function SpezzaCon($str, $separatore, $datiPerRiga, $interruzione){
        if(!empty ($str)){
            $dati = explode($separatore, $str);
            $i=0; $str="";
            foreach ($dati as $value)
                $str.=$value.($last=(++$i % $datiPerRiga)?$separatore:$interruzione);
            $str=substr($str, 0, strlen($str)-strlen($last));
        }
        return $str;
    }
    
    $stringa = "1,2,3,4,5,6,7,8,9,0,9,8,7,6,5";
    echo SpezzaCon($stringa, ',', 5, "
    ");
    saluti!

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.