Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Gestione array, help

  1. #1

    Gestione array, help

    Salve a tutti, ho questo array:

    Codice PHP:
    $elencodate=array("23/05" => "73,00""24/05" => "73,00""25/05" => "73,00""26/05" => "73,00""27/05" => "73,00""29/05" => "73,00""2+/05" => "73,00""30/05" => "73,00""31/05" => "75,00"); 
    è uno spezzone di array, complet osarà molto più lungo, praticamente è per una gestione prenotazioni per alberghi, da un form precedente l'utente decide data d arrivo e di partenza, una volta trasformata la data di arr e di part mi rimane da cercare nell'array la data di arrivo e quella di partenza e calcolare quali date ci sono in mezzo. facci oun esempio pratico per capirlo meglio:

    Utente prenota da 24/05 a 30/05

    come faccio a far trovare nell'array i risultati tra arrivo e partenza elencarmeli così da poter far fare i calcoli?

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Dovresti creare un secondo array che abbia come chiavi l'elenco dei giorni compreso nell'intervallo.

    Una volta fatto ciò puoi usare la funzione array_intersect_key

    per trovare quelle comuni. Se la prenotazione fosse a cavallo tra febbraio e marzo, come si fa a generare il secondo array, nel senso come si fa a sapere se l'anno è bisestile o meno?

  3. #3
    a me il bisestile o meno nn interessa, farann oparte solo 5 mesi: maggio, giugno, luglio, agosto e settembre.

    Quello che mi chiedo è: se faccio un secondo array che contiene l'intervallo di date, avrei risolto il problema posto sopra cioè, come facci oa trovare l'intervallo di date?

    Cioè io devo dire a php: trovami le date che stanno fra $arrivo e $partenza contenute nell'array $elencodate

    tt qui

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    In questo caso devi usare la funzione strtotime()

    http://it.php.net/manual/en/function.strtotime.php

    per crearti un array che abbia come chiavi tutti i giorni compresi tra data di arrivo e di partenza. A quel punto, una volta che hai entrambi gli array, usi la funzione che ti ho già scritto per trovare le intersezioni.

  5. #5
    grazie, provo e ti faccio sapere

  6. #6
    nulla, provo a postare il codice intero, magar isi capisce meglio:


    Codice PHP:
    $elencodate=array("23/05" => "73,00""24/05" => "73,00""25/05" => "73,00""26/05" => "73,00""27/05" => "73,00""29/05" => "73,00""2+/05" => "73,00""30/05" => "73,00""31/05" => "75,00");

    $arrivo=$_POST['arrivo'];
    $mesea=$_POST['mesea'];
    $ritorno=$_POST['ritorno'];
    $meser=$_POST['meser'];

    $dataarrivo=$elencodate["$arrivo/$mesea"];
    $dataritorno=$elencodate["$ritorno/$meser"]; 
    Ok questa sarà la funzione dove viene inoltrato il form di selezione date, vorrei che a schermo mi stampasse, mettendo il caso che arrivo sia 24/05 e ritorno 30/05:

    24/05 73,00
    25/05 73,00
    26/05 73,00
    27/05 73,00
    28/05 73,00
    29/05 73,00
    30/05 73,00


    Forse ora sono più chiare le intenzioni, scusatemi, ma cn gl iarray nn c vado roprio d'accordo

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $elencodate=array("23/05" => "73,00""24/05" => "73,00""25/05" => "73,00""26/05" => "73,00""27/05" => "73,00""29/05" => "73,00""2+/05" => "73,00""30/05" => "73,00""31/05" => "75,00"); 
    $prenotazione = array();
    $giorno_da 24;
    $mese_da 5;
    $giorno_a 30;
    $mese_a 5;

    for(
    $i strtotime(date('Y').'-'.$mese_da.'-'.$giorno_da); $i<=strtotime(date('Y').'-'.$mese_a.'-'.$giorno_a); $i strtotime("+1 day",$i)) { 
      
    $prenotazione[date('d/m',$i)] = 0;
    }
    echo 
    '<pre>';
    //print_r($prenotazione);

    print_r(array_intersect_key($elencodate,$prenotazione)); 

  8. #8
    Fatal error: Call to undefined function: array_intersect_key() in d:\easyphp1-8\www\gestitur\functions.php on line 119

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se non hai almeno la versione 5 di php guarda tra i commenti della funzione stessa e troverai il modo di utilizzarla anche su una versione antecedente.

  10. #10
    si, infatti in locale ho ancora php 4
    ora guardo un po, volevo ringraziarti, sei davvero disponibile, gentilissimo

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.