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

    [PHP] somma valori array

    ho un codice di questo tipo:
    Codice PHP:
    <?php $utente=$_POST['utente']; ?> 
    <form action="#" method="post"> 
    <input type="text" name="utente"  value="<? echo $utente;?>">utente
     
    <input type="submit" value="cerca"> 
    </form>   
    <?php 
    print "<table border=1 width=10% >"
    $fdfopen ("./mercato_1_0.txt""r");  
    while (!
    feof ($fd)) { 
    $riga=fgets($fd4096);   
    if(
    $riga!="") { 
    $arr=split(','$riga);
          if (
    in_array("$utente"$arr)) {
             print 
    "<tr>"
            print 
    "<td>".$arr[0]."</td>"
            print 
    "<td>".$arr[3]."</td>";
     }        
    $nume = ($arr[3]);  
    $num 0;  
    foreach (
    $nume as $numeri)  {
      
    $num $numeri $num
        
    print $num;   # $num vale 9 

    print 
    "</table>"fclose($fd); ?>
    Vorrei praticamente estrarre da un file csv alcuni dati , nel mio caso due serie di valori gestiti da una variabile in $_post, fare la somma dei valori di una sola serie.
    Potreste Aiutarmi???? Fino all'ultimo array con i soli valori in questione ci sono riuscito, non riesco a far girare il ciclo foreach.

    grazie

  2. #2
    Ma le righe del tuo cvs hanno lunghezza fissa di 4096 caratteri?
    Io credo che invece di fopen/fread dovresti usare file() che ritorna il tuo file in un array separando le righe ai LF.


    $arr[3] contiene un array? Dovrebbe!
    Ma come lo usi tu viene letto come una singola stringa o singolo valore, che chiaramente in un foreach non hanno molto senso.

    Temo dovresti ripartire dalla analisi del formato che hanno i dati nel tuo file e poi riscrivere il tuo codice.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  3. #3
    Grazie per la risposta Soft,
    premetto che sto cominciando ora a vedere un pò di php.
    dunque $nume è un array che prende i dati da un altro array $arr il quale contiene una serie di dati.
    L'unica somma che sono riuscito a fargli fare però, anche usando la funzione array_sum() è stata quella di mettere uno dietro l'altro il valori contenuti in $arr[3]..
    sono riuscito a mettere i dati che devo sommare algebricamente in un nuovo array che è $nume. Ora però vorrei riuscire a sommarli algebricamente.

    Grazie per il tuo aiuto

  4. #4
    Mi sembra difficile che il contenuto di $arr[3] possa essere un array, visto che $arr lo ottieni splittando una riga, e $arr[3] e' semplicemente il quarto campo di quella riga.

    Posta il contenuto di $arr[3], o meglio di tutto $arr con
    Codice PHP:
    var_dump($arr[3]); 
    Consiglio: dai nomi comprensibili alle variabili, lavorare con $num, $nume, $numeri porta rapidamente alla follia.

    Inoltre le parentesi nell'assegnamento
    Codice PHP:
    $nume = ($arr); 
    sono inutili e nella riga
    Codice PHP:
    $num $numeri $num 
    manca il punto e virgola finale.

  5. #5
    questo è il var dump di $arr[3]:
    codice:
    string(2) "19" 19string(1) "1" 1string(2) "17" 17string(1) "9" 9string(1) "8" 8string(2) "19" 19string(2) "19" 19string(2) "13" 13string(2) "33" 33string(2) "33" 33string(2) "19" 19string(1) "1" 1string(1) "1" 1string(2) "27" 27string(1) "1" 1string(1) "1" 1string(2) "15" 15string(1) "8" 8string(1) "1" 1string(2) "11" 11string(1) "1" 1string(2) "12" 12string(2) "13" 13string(2) "11" 11string(1) "8" 8string(1) "6" 6string(1) "5" 5string(1) "5" 5string(1) "3" 3string(1) "2" 2string(2) "19" 19string(2) "25" 25string(2) "16" 16string(2) "13" 13string(2) "26" 26string(2) "17" 17string(2) "26" 26string(1) "3" 3string(2) "14" 14string(1) "3" 3string(1) "5" 5string(1) "7" 7string(1) "2" 2string(1) "9" 9string(2) "11" 11string(1) "7" 7string(2) "19" 19string(1) "3" 3string(1) "3" 3string(2) "19" 19string(1) "1" 1string(1) "1" 1string(1) "8" 8string(2) "33" 33string(2) "31" 31string(2) "19" 19string(2) "14" 14string(1) "9" 9string(2) "13" 13string(1) "1" 1string(1) "1" 1string(1) "1" 1string(1) "2" 2string(1) "3" 3string(1) "9" 9string(1) "1" 1string(1) "3" 3string(1) "9" 9string(1) "5" 5string(2) "22" 22string(1) "7" 7string(1) "5" 5string(1) "6" 6string(1) "6" 6string(1) "5" 5string(1) "8" 8string(1) "7" 7string(2) "13" 13string(1) "5" 5string(2) "33" 33string(1) "5" 5string(2) "15" 15string(1) "8" 8string(1) "8" 8string(2) "17" 17string(1) "1" 1string(1) "1" 1string(1) "6" 6string(1) "5" 5string(1) "1" 1string(1) "9" 9string(2) "22" 22string(2) "28" 28string(2) "19" 19string(2) "16" 16string(2) "15" 15string(2) "17" 17string(2) "13" 13string(1) "8" 8string(2) "25" 25string(2) "22" 22string(2) "13" 13string(2) "10" 10string(1) "4" 4string(1) "5" 5string(2) "15" 15string(2) "13" 13string(1) "8" 8string(1) "5" 5string(1) "4" 4string(1) "5" 5string(1) "9" 9string(2) "13" 13string(2) "25" 25string(2) "11" 11string(1) "5" 5string(2) "33" 33string(2) "11" 11string(1) "5" 5string(1) "7" 7string(1) "1" 1string(2) "12" 12string(1) "4" 4string(1) "7" 7string(1) "1" 1string(2) "17" 17string(1) "3" 3string(2) "13" 13string(1) "7" 7string(1) "9" 9string(2) "29" 29string(2) "13" 13string(2) "33" 33string(1) "1" 1string(1) "8" 8string(2) "24" 24string(2) "15" 15string(1) "1" 1string(1) "9" 9string(1) "3" 3string(1) "1" 1string(2) "11" 11string(1) "1" 1string(1) "6" 6string(1) "7" 7string(2) "10" 10string(1) "5" 5string(1) "6" 6string(1) "5" 5string(1) "5" 5string(1) "3" 3string(2) "15" 15string(2) "22" 22string(1) "7" 7string(1) "4" 4string(1) "5" 5string(1) "7" 7string(1) "6" 6string(2) "31" 31string(2) "33" 33string(2) "15" 15string(1) "1" 1string(1) "9" 9string(1) "1" 1string(1) "6" 6string(1) "5" 5string(1) "1" 1NULL 0NULL 0NULL 0string(2) "17" 17string(1) "1" 1string(1) "1" 1string(1) "2" 2NULL 0string(1) "1" 1NULL 0NULL 0string(2) "19" 19string(2) "22" 22NULL 0string(2) "19" 19string(1) "1" 1string(1) "8" 8string(2) "11" 11string(2) "12" 12string(1) "6" 6string(2) "10" 10string(1) "6" 6string(2) "19" 19string(2) "25" 25string(2) "33" 33string(1) "1" 1string(1) "1" 1string(1) "1" 1string(1) "1" 1string(2) "31" 31string(2) "15" 15string(1) "8" 8string(1) "3" 3NULL 0string(1) "3" 3NULL 0string(2) "22" 22string(2) "33" 33NULL 0string(1) "3" 3string(2) "17" 17string(1) "1" 1string(1) "1" 1string(1) "9" 9string(1) "6" 6string(1) "8" 8string(1) "8" 8string(1) "5" 5string(1) "1" 1string(1) "1" 1string(1) "1" 1string(2) "22" 22string(2) "19" 19string(1) "9" 9string(2) "13" 13string(1) "9" 9string(1) "7" 7string(1) "1" 1string(2) "28" 28string(1) "2" 2string(2) "14" 14string(1) "1" 1string(1) "1" 1string(1) "8" 8string(1) "7" 7string(1) "4" 4string(1) "1" 1string(1) "1" 1string(1) "2" 2string(2) "33" 33string(2) "26" 26string(1) "6" 6string(1) "4" 4string(1) "4" 4string(1) "1" 1string(1) "1" 1string(1) "6" 6string(2) "16" 16NULL 0string(1) "2" 2string(1) "5" 5string(1) "4" 4string(2) "25" 25string(1) "1" 1string(2) "19" 19string(1) "1" 1string(1) "1" 1string(2) "13" 13string(1) "8" 8string(1) "2" 2string(1) "5" 5string(1) "1" 1string(1) "1" 1string(2) "12" 12string(1) "3" 3string(1) "8" 8string(1) "4" 4string(1) "1" 1string(2) "33" 33string(1) "5" 5string(1) "6" 6string(1) "1" 1string(2) "11" 11string(2) "33" 33string(1) "1" 1string(2) "19" 19string(1) "1" 1string(1) "1" 1string(2) "27" 27string(2) "15" 15string(1) "7" 7string(1) "2" 2string(1) "4" 4string(2) "15" 15string(1) "1" 1string(1) "9" 9string(1) "9" 9string(1) "5" 5string(2) "17" 17string(1) "1" 1string(1) "4" 4string(2) "11" 11string(2) "28" 28string(1) "3" 3string(2) "33" 33string(2) "27" 27string(1) "1" 1string(2) "13" 13string(1) "5" 5string(2) "25" 25string(2) "12" 12string(2) "13" 13string(1) "7" 7string(2) "19" 19string(2) "15" 15string(1) "8" 8string(2) "21" 21string(1) "4" 4string(1) "2" 2string(1) "4" 4string(2) "31" 31string(1) "4" 4string(1) "9" 9string(1) "5" 5string(1) "4" 4string(2) "24" 24string(1) "5" 5string(1) "4" 4string(2) "31" 31string(2) "26" 26string(2) "12" 12string(1) "6" 6NULL 0string(1) "2" 2string(1) "1" 1string(2) "11" 11string(1) "8" 8string(1) "7" 7string(1) "3" 3string(2) "14" 14string(1) "9" 9NULL 0string(1) "4" 4string(2) "18" 18string(2) "23" 23string(2) "34" 34string(1) "4" 4string(2) "33" 33string(2) "22" 22string(2) "19" 19string(2) "23" 23string(1) "4" 4string(1) "1" 1string(1) "1" 1string(2) "33" 33string(1) "1" 1string(1) "1" 1string(1) "5" 5string(2) "11" 11string(2) "11" 11string(2) "10" 10string(2) "32" 32string(1) "1" 1string(2) "19" 19string(1) "5" 5string(2) "23" 23string(2) "39" 39string(1) "4" 4string(2) "18" 18string(2) "12" 12string(2) "19" 19string(2) "26" 26string(2) "18" 18string(1) "4" 4string(2) "19" 19string(1) "4" 4string(2) "22" 22string(2) "12" 12string(1) "7" 7string(1) "8" 8string(1) "2" 2string(2) "12" 12string(2) "17" 17string(2) "10" 10string(2) "17" 17string(2) "23" 23string(2) "19" 19string(1) "4" 4string(2) "12" 12string(1) "1" 1string(2) "21" 21string(2) "22" 22string(2) "19" 19string(2) "12" 12string(2) "22" 22string(1) "4" 4string(1) "8" 8string(1) "4" 4string(2) "21" 21string(2) "16" 16string(2) "22" 22string(2) "23" 23string(2) "19" 19string(1) "4" 4string(1) "4" 4string(1) "5" 5string(2) "15" 15string(2) "15" 15string(1) "6" 6string(2) "23" 23string(1) "1" 1string(1) "5" 5string(1) "3" 3string(1) "1" 1string(2) "12" 12string(2) "13" 13string(2) "23" 23string(2) "23" 23string(2) "16" 16string(2) "22" 22string(2) "16" 16string(1) "7" 7string(2) "12" 12string(1) "1" 1string(2) "19" 19string(1) "5" 5string(1) "8" 8string(1) "5" 5NULL 0string(2) "28" 28NULL 0string(2) "12" 12string(2) "25" 25string(2) "15" 15string(2) "39" 39string(2) "18" 18string(1) "6" 6string(2) "19" 19string(1) "8" 8string(1) "9" 9string(1) "8" 8string(2) "22" 22string(1) "4" 4string(2) "10" 10string(1) "8" 8string(1) "1" 1string(1) "1" 1string(1) "8" 8string(2) "14" 14string(1) "1" 1string(1) "7" 7string(1) "6" 6string(1) "5" 5
    la cosa strana èche dovrebbe darmi solo 25 valori, le variabili sono solo un copia incolla di alcuni tentativi fatti non tenerne conto

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?php
    $row        
    =1;
    $campoIndex =3//il numero di campo che vuoi sommare
    $total      =0;
    $handle fopen("test.csv""r");
    while ((
    $data fgetcsv($handle1000",")) !== FALSE) {
        
    $total+=$data[$campoIndex];
        }
    fclose($handle);
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Grazie per la risposta Doc,
    ma il campo 3, deve essere preso da un'array generato dopo un $_POST e non dalla lettura del file csv originario.

    Spero sia questo il senso delle tue righe di codice.

    Se ho sbagliato la lettura ti prego di correggermi pure visto che sto cercando di imparare

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.