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

    ordinare un array che contiene orari

    Ciao Ragazzi,
    ho un problema da risolvere

    Ho un array con l'elenco degli orari del tipo
    23:45,
    07:00,
    13:00,
    00:00,
    00:40,
    09:00,
    06:45,
    10:00
    etc etc

    con sort ($ArrayOrari); riesco ad ordinarli in modo crescente ma vorrei che gli orari da 00:00 a 06:59 andassero per ultimi

    dai valori riportati prima ecco come dovrebbe essere

    07:00,
    09:00,
    10:00,
    13:00,
    23:45,
    00:00,
    00:40,
    06:45


    grazie

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    prova cosi':
    $array = tuo array con i dati

    $nuovo_array= array();questo si riempira' con gli orari maggiori di 07:
    $nuovo_array2= array();questo si riempira' con gli orari minori di 07:

    foreach($array as $orari){
    list($parte1,$parte2) = explode(":",$orari);
    if($parte1 < 7){
    $nuovo_array2[] = $orari;
    }else{
    $nuovo_array[] = $orari;
    }
    }

    poi li stampi e ordini:
    $primo_gruppo = sort($nuovo_array);
    $secondo_gruppo = sort($nuovo_array2);

    foreach($primo_gruppo as $primo){
    echo $primo."
    ";
    }
    foreach($secondo_gruppo as $secondo){
    echo $secondo."
    ";
    }

  3. #3
    ho risolto così, mi creo due array, li ordino e li unisco
    codice:
    			$ArrayOrari = array_unique($ArrayOrari);
    			
    			$StringOrarioDopo  = "0,";
    			$StringOrarioPrima = "0,";
    			
    			while (list ($chiave, $orario) = each ($ArrayOrari)) {
    			
    				$TempOrario = ereg_replace("'", "", $orario);
    				$TempOrario = ereg_replace(":", "", $TempOrario);
    				
    				if ((0 <= $TempOrario) && ($TempOrario <= 659)) {
    					$StringOrarioDopo .= "," . $orario;
    				} else {
    					$StringOrarioPrima .= "," . $orario;
    				}
    				
    			}
    
    			$StringOrarioPrima = ereg_replace('0,,', "", $StringOrarioPrima);	
    			$StringOrarioPrima = ereg_replace('0,', "", $StringOrarioPrima);		
    			$StringOrarioPrima = ereg_replace(' ', "", $StringOrarioPrima);	
    			
    			$ArrayOrari_prima = explode(",", $StringOrarioPrima);
    			sort ($ArrayOrari_prima);
    			reset ($ArrayOrari_prima);
    			$ArrayOrari_prima = array_unique($ArrayOrari_prima);
    			
    			
    			$StringOrarioDopo = ereg_replace('0,,', "", $StringOrarioDopo);	
    			$StringOrarioDopo = ereg_replace('0,', "", $StringOrarioDopo);
    			$StringOrarioDopo = ereg_replace(' ', "", $StringOrarioDopo);			
    			
    			$ArrayOrari_dopo = explode(",", $StringOrarioDopo);
    			sort ($ArrayOrari_dopo);
    			reset ($ArrayOrari_dopo);
    			$ArrayOrari_dopo = array_unique($ArrayOrari_dopo);			
    			
    			$ArrayOrari_nuovo = array_merge($ArrayOrari_prima, $ArrayOrari_dopo);
    			
    			$ArrayOrari_nuovo = array_unique($ArrayOrari_nuovo);
    			reset ($ArrayOrari_nuovo);

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.