Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Switch (true) non ne esco

    Buongiorno,

    non riesco ad uscirne.

    codice:
    $ar = array("personale","clienti"); 
    
    foreach ($ar as $a){
    	
    	switch (true){
    	
    		case ($a != "personale"): echo " - Personale
    "; break;
    		case ($a != "clienti"): echo " - Clienti
    "; break;
    		case ($a != "formazioni"): echo " - Formazioni
    "; break;
    		case ($a != "pdv"): echo " - PDV
    "; break;
      
    	}
    
    }
    Non fa quello che voglio, mi aspetterei che stampasse:

    - Formazioni
    - PDV

    Mi date una mano?

    Grazie

    SK

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Codice PHP:
    $ar = array("personale","clienti"); 

    foreach (
    $ar as $a){
        
        switch (
    $a){
        
            case 
    "personale": echo " - Personale
    "
    ; break;
            case 
    "clienti": echo " - Clienti
    "
    ; break;
            case 
    "formazioni": echo " - Formazioni
    "
    ; break;
            case 
    "pdv": echo " - PDV
    "
    ; break;
      
        }



  3. #3
    Originariamente inviato da Luke70
    Codice PHP:
    $ar = array("personale","clienti"); 

    foreach (
    $ar as $a){
        
        switch (
    $a){
        
            case 
    "personale": echo " - Personale
    "
    ; break;
            case 
    "clienti": echo " - Clienti
    "
    ; break;
            case 
    "formazioni": echo " - Formazioni
    "
    ; break;
            case 
    "pdv": echo " - PDV
    "
    ; break;
      
        }


    Niente, mi restiuisce:

    - Clienti
    - Personale

  4. #4
    Ho provato anche così, ma nulla

    codice:
    $ar = array("personale","clienti"); 
    
    foreach ($ar as $a){
    	
    	switch (false){
    	
    		case ($a == "personale"): echo " - Personale
    "; break;
    		case ($a == "clienti"): echo " - Clienti
    "; break;
    		case ($a == "formazioni"): echo " - Formazioni
    "; break;
    		case ($a == "pdv"): echo " - PDV
    "; break;
      
    	}
    
    }

  5. #5
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Scusa, non avevo visto bene cosa volevi fare.
    O fai una serie di if e elseif oppure(forse meglio) usi array_diff

    Codice PHP:
    $ar = array("personale","clienti");
    $ck = array("personale","clienti","formazioni""clienti");
    $diff=array_diff($ck,$ar);

    foreach (
    $diff as $a){
        
        switch (
    $a){
        
            case 
    "personale": echo " - Personale
    "
    ; break;
            case 
    "clienti": echo " - Clienti
    "
    ; break;
            case 
    "formazioni": echo " - Formazioni
    "
    ; break;
            case 
    "pdv": echo " - PDV
    "
    ; break;
      
        }


    Non l'ho testata quindi potrebbe esserci qualche errore di "ortografia"

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Switch (true) non ne esco

    Originariamente inviato da serialkiller

    non riesco ad uscirne.

    Non fa quello che voglio
    Più che altro dovresti spiegare meglio cosa vuoi.
    Vuoi un'UNICA stampa di "Formazioni" e "PDV"? O deve stampare qualcosa per ogni elemento?

  7. #7
    Ma scusami, se faccio così:

    codice:
    $ar = array("personale","clienti"); 
    
    foreach ($ar as $a){
    	
    	switch (true){
    	
    		case ($a === "personale"): echo " - Personale
    "; break;
    		case ($a === "clienti"): echo " - Clienti
    "; break;
    		case ($a === "formazioni"): echo " - Formazioni
    "; break;
    		case ($a === "pdv"): echo " - PDV
    "; break;
      
    	}
    
    }
    Tutto funziona, ovviamente mi stampa se sono uguali, io vorrei che stampasse se non c'è, ovvero l'inverso, e l'array_diff con quale array lo faccio, dovrei crearne uno appositamente....

  8. #8
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Codice PHP:
    $ck = array("personale","clienti","formazioni""clienti"); 

  9. #9

    Re: Re: Switch (true) non ne esco

    Originariamente inviato da luca200
    Più che altro dovresti spiegare meglio cosa vuoi.
    Vuoi un'UNICA stampa di "Formazioni" e "PDV"? O deve stampare qualcosa per ogni elemento?
    Voglio "semplicemente" che stampi a video, "solo" nel caso il tal valore non sia presente, se invece il valore è presente, non stampi nulla, quindi se ho l'array così:

    codice:
    $ar = array("personale","clienti");
    Deve stampare:

    - Formazioni
    - PDV

    Quindi i due valori che "non" sono presenti nell'array, come detto nel primo post.
    Fare l'opposto non mi crea nessun problema (vedi post sopra), ma io ho bisogno che stampi quello che "non" c'è e non quello che c'è nell'array.

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Codice PHP:
    $ar = array("personale","clienti");
    $ck = array("personale","clienti","formazioni""pdv"); 
    $diff array_diff($ck$ar);
    echo 
    implode('
    '
    $diff); 

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 © 2024 vBulletin Solutions, Inc. All rights reserved.