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

    Sommare più array estratti attraverso ciclo for e "interpretati" con list ed explode

    Ho cercato un po' in giro nel forum, ma non ho trovato nulla di propriamente simile al quesito che ho da porre.
    Ho due file: "register.php" e "reader.php"
    Nel primo, dovendo scrivere e sovrascrivere il file, ho una serie di array che sono salvati in questo formato:
    codice:
    <? $money[] = "50|60"; ?> 
    <? $money[] = "70|84"; ?>
    <? $money[] = "30|36"; ?>
    I valori di ogni array sono espressi in senso "prezzo senza iva|prezzo con iva".
    Il secondo file serve a richiamare le variabili degli array e a sommarle nella loro totalità:
    codice:
    <? 
    require ("register.php");
    fopen("register.php", "r"); // apro il file 
    $num = count($money); // conto il numero di array presenti 
    // creo un ciclo for, che permetta di leggere register.php riga per riga 
    // poi uso list ed explode per dividere le variabili di ogni array 
    for($i = 0; $i < $num; $i++){
    list($iva_esclusa, $iva_inclusa) = explode("|", $money[$i]);
    // a questo punto provo a sommare tutte le variabili $iva_inclusa 
    $x = array_sum($iva_inclusa);
    // successivamente cerco di fare le stessa cosa con $iva_esclusa 
    $y = array_sum($iva_esclusa);
    // quindi vado a stampare le variabili 
    echo "Totale iva esclusa: $y 
    "; 
    echo "Totale iva inclusa: $x 
    ";
    }
    ?>
    In linea di principio pensavo di esserci, ma la cosa non funziona. Sapreste dirmi come posso rimediare all'errore? Ne ho provate tante, ma i risultati finora non sono esaltanti.
    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Secondo me potresti fare a meno di avere nel tuo array l'elemento iva inclusa. Esempio banale: se aumenta l'iva sei costretto a modificare tutti i valori uno per uno.
    Visto che è un valore calcolato te lo puoi tranquillamente ricavare.

    Codice PHP:
    <?php
    $money 
    = array(50,70,30);

    $totale_senza_iva array_sum($money);
    echo 
    $totale_senza_iva;

    $ivati = array();
    foreach (
    $money as $senzaIva)
    {
      
    $ivati[] = $senzaIva + ($senzaIva 0.2);
    }

    $totaleIvati array_sum($ivati);
    echo 
    $totaleIvati;
    ?
    Così hai la somma con e senza iva.

  3. #3
    Effettivamente per il calcolo dell'iva il sistema che mi proponi è più efficiente e snellisce anche il codice.
    Tuttavia quello stesso codice che ho postato vorrei utilizzarlo per il calcolo mirato di quantità dei prodotti e numero di prenotazioni già effettuate (prodotto per prodotto).
    Questo in modo tale da avere un aggiornamento costante sugli ordini da evadere quindi "quantità prodotto|num_prenotazioni".
    Un sistema strutturato con questo genere di array mi permetterebbe una costante scrittura e riscrittura deli file, anche nel caso in cui volessi ricorrere ad un database in txt.
    Intanto grazie per il suggerimento sul calcolo dell'iva

  4. #4
    Nessuna soluzione alternativa?

  5. #5
    Ho risolto da me.
    Se a qualcuno in futuro potesse interessare, allego il codice con le variazioni apportate:

    codice:
    <? 
    require ("register.php"); 
    
    fopen("register.php", "r");
    $num = count($money);   
    for($i = 0; $i < $num; $i++){
    list($iva_esclusa, $iva_inclusa) = explode("|", $money[$i]);
    
    $x += $iva_inclusa;
    $y += $iva_esclusa;
    } 
    
    echo "Totale iva esclusa: $y 
    "; 
    echo "Totale iva inclusa: $x 
    "; 
    ?>

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.