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

    ancora problemi con array

    ciao a tutti,
    da una query estraggo i seguenti dati:
    Prezzo Data
    28.30 2007-12-24
    45.20 2007-12-24
    151.30 2007-12-24
    49.00 2007-12-24

    142.40 2007-12-25

    146.70 2007-12-26
    23.90 2007-12-26

    163.10 2007-12-27

    114.90 2007-12-28

    i dati sono contenuti in due array $row[prezzo] $row[data]

    La mia intenzione sarebbe quella di unificare il tutto presentanto solo il totale per ogni singolo giorno, come posso fare?

    Grazie per eventuali risposte

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Fai i calcoli direttamente sulla query

    codice:
    select data,sum(prezzo) as totale
    from tabella
    group by data
    order by data

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    fossi in te creerei un array multidimensionale, fatto cosi:

    $dati['2007-12-24'] = array('28.30', '45.20', '151.30', '49.00');
    $dati['2007-12-25'] = array('146.70', '23.90');

    poi

    foreach($dati as $data => $prezzi) {
    echo "la somma del giorno ".$data." è ".array_sum($prezzi);
    echo '
    ';
    }


  4. #4
    sto provando a fare quello che mi hai scritto, ma credo di farlo nel punto sbagliato

    if($result_1 && mysql_num_rows($result_1)>0){
    while ($row_1=mysql_fetch_array($result_1)){

    $array_prodotti[$row_1[data]]=$row_1[prezzo_tot_prodotto_al_10];
    }
    }

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Innanzitutto, volevo precisare che ti ho risposto cosi perchè quello che chiedevi era riguardo gli array, ma devi valutare il tuo caso e decidere se non è il caso di seguire il consiglio di nicola.

    A parte questa premessa, che problemi ti da il codice?

    prova a stampare dopo il ciclo:

    codice:
    echo '<pre>'.print_r($array_prodotti, true).'</pre>';
    e vedi se l'array è composto come volevi.

    ciao

  6. #6
    scusa, ma molte volte non riesco ad esprimere ben certi concetti, e finisco sempre per confondere le idee,se ti va posso rispiegare in modo diverso

    Da una query estraggo i seguenti array:

    $data=array("2007-12-24","2007-12-24","2007-12-24","2007-12-24","2007-12-25","2007-12-26","2007-12-26","2007-12-27","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-29","2007-12-29","2007-12-29","2007-12-30","2007-12-30");
    $prezzo=Array("28.30","45.20","151.300000","49.00" ,"142.40","146.70","23.90","163.100000","114.90"," 31.68","93.00","23.70","35.64","24.50","21.50","18 .60","29.50","142.900000","44.50","63.36");

    Quello che vorrei fare è sommare i dati del secondo array in base alla date presenti nel primo
    ottenendo cosi un array unificato come questo:

    $array_finale=array(("2007-12-24"=>"227.5","2007-12-25"=>"49.00","2007-12-26"=>"295.4","ecc"=>"ecc")

    Ho provato a fare come dice nicola75ss e funziona ma per poter applicare quello che mi ha suggerito devo inserire i dati che estraggo dalla prima query in una seconda tabella e poi leggere i dati con la query che mi proposto nicola75ss-

    Io vorrei evitare di fare un'altra query e lavorare con gli array visto che ho sempre grossi problemi a manipolarli, il tutto e solo per capire a fondo come funzionano

    Grazie

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Cosi dovrebbe essere quello che chiedi:

    codice:
    $data=array("2007-12-24","2007-12-24","2007-12-24","2007-12-24","2007-12-25","2007-12-26","2007-12-26","2007-12-27","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-28","2007-12-29","2007-12-29","2007-12-29","2007-12-30","2007-12-30");
    $prezzo=Array("28.30","45.20","151.300000","49.00","142.40","146.70","23.90","163.100000","114.90","31.68","93.00","23.70","35.64","24.50","21.50","18.60","29.50","142.900000","44.50","63.36");
    
    $array_articoli = array();
    
    foreach($prezzo as $key => $val) {
      if(!isset($array_articoli[$data[$key]])) {
        isset($array_articoli[$data[$key]] = array();
      }
      $array_articoli[$data[$key]][] = $val;
    }
    
    $count = count($array_articoli);
    
    $articoli = array();
    
    foreach($array_articoli as $key => $array_prezzi) {
      $articoli[$key] = array_sum($array_prezzi);
    }
    
    echo "<pre>".print_r($articoli, true)."</pre>";

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.