Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema for php

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107

    problema for php

    Ciao a tutti, ho un mistero da risolvere... ho questo codice:

    codice:
    $fasce_orarie=array('09:00-10:00'=>array("$est"),
    						  '10:00-11:00'=>array("$est"),
    						  '11:00-12:00'=>array("$est"),
    						  '12:00-13:00'=>array("$est"),
    						  '13:00-14:00'=>array("$est"),						  
    						  '14:00-15:00'=>array("$est"),		
    						  '15:00-16:00'=>array("$est"),
    						  '16:00-17:00'=>array("$est"),
    						  '17:00-18:00'=>array("$est"),
    						  '18:00-19:00'=>array("$est"));
    
    $key=array_keys($fasce_orarie); // contiene le chiavi dell'array con tutti gli orari possibili   esempio 09:00-10:00
    
    DEVO CONTROLLARE CHE L'ORARIO SCELTO DA UN UTENTE,  MEMORIZZATO IN $ORARI SIA  TRA QUELLI CHE HO DEFINITO NELL'ARRAY 
    
    FACCIO COSÌ :
    
    $checkIn=in_array($orari,$key); 
    	if($checkIn==true){
     // se si allora aggiorno il valore della variabile est ed elimino da fasce_orarie la rispettiva chiave
    		for($i=0;$i<=count($fasce_orarie);$i++){
    			if($key[$i]=$orari)	{
    				$est=$estensione; 	
    				$fasce_orarie[$key[$i]]=$est;
    				$flag="occupato";	
    			}						
    			if($key[$i]!="") {
    				$canc=$key[$i];			
    				$libero=my_array_delete($fasce_orarie,$canc); 						   
    			   // restituisco l'array dopo averla re-indicizzata			
    			}			
    		}
    	}
    
    function my_array_delete($fasce_orarie, $item) {
    	   if (isset($fasce_orarie[$item]))
    	       unset($fasce_orarie[$item]);
    	  	return array_merge($fasce_orarie);
    }
    
    SE L'ORARIO NON SCELTO NON È TRA QUELLI SICCOME POSSO AVERE ALTRE POSSIBILITÀ , OVVERO L'UTENTE PUÒ DECIDERE DI PROLUNGARE DA 1 A 3 ORE L'ORARIO DI BASE CHE HA SCELTO HO PENSATO DI FARE TUTTI I POSSIBILI CONTROLLI IN QUESTO MODO:
    
    if($orari="09:00-13:00"){ 
    		 for($i=0;$i<4;$i++) {
    		 	$est=$estensione; 	
    			$fasce_orarie[$key[$i]]=$est;
    			if($fasce_orarie[$key[$i]]=3) {
    				$canc=$key[$i];			
    				$libero=my_array_delete($fasce_orarie,$canc); 						   
    			   // restituisco l'array dopo averla re-indicizzata			
    			}										   
    		}					
    }

    IN $CANC VANNO A FINIRE GLI ORARI INTERMEDI DA ELIMINARE, MA IN QUESTO CASO LA FUNZIONE "my_array_delete" CANCELLA SOLO L'ULTIMO E NON TUTTI

    PERCHÈ ??

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ..ho dato un rapido sguardo al codice..

    questo non dovrebbe essere un confronto?
    if($fasce_orarie[$key[$i]]=3)
    quindi andrebbe scritto come
    if($fasce_orarie[$key[$i]]==3)

    come anche questa riga
    if($key[$i]=$orari)
    andrebbe
    if($key[$i]==$orari)
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    si non hai tutti i torti però nel primo if che hai scritto sia con == che = non funziona.. mentre nel secondo funziona solo con = .. suggerimenti?

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    non è questione funziona\non funziona
    un "==" esegue un confronto, mentre "=" esegue un'assegnazione, ciò non esclude un corretto "funzionamento" dell'istrtuzione if, per intenderci non restituisce un errore di mera sintassi.
    Premesso ciò analizza meglio il tuo algoritmo e capire quindi quali confronti\assegnazioni occorre fare altrimenti non ne esci
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    Si so bene quale sia la differenza.. però non riesco a capire quale sia l'errore

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    credo che non vada bene la funzione my_array_delete, ho provato a fare questo:
    codice:
    if($orari="09:00-13:00") {
    	for($i=0;$i < 4;$i++){
    		$est=$estensione; 	
    		$fasce_orarie[$key[$i]]=$est;
    		$flag="occupato";	
    		$canc=$key[$i];	// contiene gli orari da eliminare
    		if($canc!=""){
    				$libero=my_array_delete($fasce_orarie,$canc); 
    		}				
    	}		
    }
    ma i valori presenti in $canc non vengono cancellati.. ho provato anche ad usare unset ma niente..

  7. #7
    Originariamente inviato da homerbit
    non è questione funziona\non funziona
    un "==" esegue un confronto, mentre "=" esegue un'assegnazione, ciò non esclude un corretto "funzionamento" dell'istrtuzione if, per intenderci non restituisce un errore di mera sintassi.
    Premesso ciò analizza meglio il tuo algoritmo e capire quindi quali confronti\assegnazioni occorre fare altrimenti non ne esci
    Originariamente inviato da marshall86
    si non hai tutti i torti però nel primo if che hai scritto sia con == che = non funziona.. mentre nel secondo funziona solo con = .. suggerimenti?
    Originariamente inviato da marshall86
    codice:
    if($orari="09:00-13:00") {
    ...
    Secondo me devi provare tutte le combinazioni possibili con = e ==. Vedrai che se trovi quella giusta il codice funzionerà alla perfezione!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107

    Risolto

    potete chiudere il post

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.