Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    [ARRAY] trovare il prezzo minimo tra i record che hanno la stessa data

    Ciao ragazzi, come dice il titolo, ho bisogno di trovare il prezzo minimo tra i record che hanno la stessa data;

    Codice PHP:
        foreach ($arraytmp as $recordOff
           {
            echo 
    $recordOff['IDROOM'];
            echo 
    $recordOff['TIPO_OFFERTA'];
            echo 
    $recordOff['IDOFFERTA'];
            echo 
    date("d/m/Y",$recordOff['DATA']);
            echo 
    $recordOff['PREZZO_SCONTATO'];
            echo 
    $recordOff['PREZZO_NON_SCONTATO'];
            echo 
    $recordOff['OFFERTA_PRESENTE'];
        } 
    L'output dell'array sarebbe questo:

    Codice PHP:
    16/02/2010 23.00 23.00no
    17/02/2010 6.37 7.00si
    18/02/2010 6.37 7.00si
    19/02/2010 4.55 5.00si
    20/02/2010 18.2 20.00si
    21/02/2010 18.2 20.00si
    22/02/2010 9.1 10.00si
    22/02/2010 30.00 10.00si
    23/02/2010 9.1 10.00si
    23/02/2010 30.00 10.00si
    24/02/2010 5.46 6.00si
    24/02/2010 30.00 6.00si
    25/02/2010 4.55 5.00si
    25/02/2010 30.00 5.00si
    26/02/2010 30.00 5.00si
    27/02/2010 30.00 9.00si
    28/02/2010 30.00 9.00si 
    Avrei bisogno di stampare solo i record che hanno il prezzo minore tra le date uguali e gli altri record (con date diverse) devono rimanere invariati

    In questo caso l'output corretto dovrebbe essere come questo:

    Codice PHP:
    16/02/2010 23.00 23.00no
    17/02/2010 6.37 7.00si
    18/02/2010 6.37 7.00si
    19/02/2010 4.55 5.00si
    20/02/2010 18.2 20.00si
    21/02/2010 18.2 20.00si
    22/02/2010 9.1 10.00si
    23/02/2010 9.1 10.00si
    24/02/2010 5.46 6.00si
    25/02/2010 4.55 5.00si
    26/02/2010 30.00 5.00si
    27/02/2010 30.00 9.00si
    28/02/2010 30.00 9.00si 
    Come devo fare?

  2. #2
    non ho ben capito di che forma è il tuo array.
    In tutti i casi potrebbe essere utile http://it.php.net/manual/en/function.sort.php .

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao Elmapomap,
    il mio array è multidimensionale, formato così:

    Codice PHP:
    $arraytmp[] = array("IDROOM"=>$id_camera,"TIPO_OFFERTA"=>'1'"IDOFFERTA"=>$id_offerte"DATA"=>sum_day($Ydal$Mdal$Ddal,$i), "PREZZO_SCONTATO"=>$prezzo_scontato"PREZZO_NON_SCONTATO"=>$prezzo_tariffa"OFFERTA_PRESENTE"=>"si"); 

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    tanti modi... eccone uno "a caso" (da verificare... non l'ho testato):

    Codice PHP:
    $arr1 = array(); $arr2 = array();
    foreach (
    $arraytmp as $id => $recordOff) {
      
    $recordOff['_id_'] = $id// memorizzo l'indice nel vettore (per riordinarlo dopo)
      
    if (isset($arr1[$recordOff['DATA']])) { // se ho già registrato un record con stessa data...
        
    $p1 $arr1[$recordOff['DATA']]['PREZZO_NON_SCONTATO']; // ...ne leggo il prezzo...
        
    $p2 $recordOff['PREZZO_NON_SCONTATO']; // ...e leggo quello attuale...
        
    if ($p2<$p1$arr1[$recordOff['DATA']] = $recordOff// ...e lo sostituisco se è inferiore
      
    } else { // ALTRIMENTI
        
    $arr1[$recordOff['DATA']] = $recordOff// ... memorizzo il record e basta.
      
    };
    };
    foreach (
    $arr1 as $vl$arr2[$vl['_id_']] = $vl// riordino il vettore in base agli indici originali 

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    function minimum_price($records){
        
    $tmp=array();
        foreach(
    $records as $recordOff){
            
    $date=date("d/m/Y",$recordOff['DATA']);
            
    $tmp[$date]=(isset($tmp[$date]['PREZZO_NON_SCONTATO']) && $recordOff['PREZZO_NON_SCONTATO'] < $tmp[$date]['PREZZO_NON_SCONTATO'])?$recordOff:$tmp;
            }
        
    $out=array();
        foreach(
    $tmp as $recOut$out[]=$recOut;
        return 
    $out;
        } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.