• Super User

    Foreach annidati: soluzione?

    Salve a tutti,
    posto qui perchè è più una domanda di PHP che di Wordpress:

    Ho il seguente codice:

    
    		//PAGINE DEI GRUPPI
    		foreach ( $menu as $mkey => $m ) {
    			$key = array_search( 'edit.php?post_type=gpages', $m );
    		if ( $key )
    				unset( $menu[$mkey] );
    		}
    		foreach ( $menu as $mkey => $m ) {
    			$key = array_search( 'post-new.php?post_type=page', $m );
    		if ( $key )
    				unset( $menu[$mkey] );
    		}
    
    

    Il seguente codice fa un foreach su $menu e cerca la voce "x" ed eventualmente la rimuove.

    Se volessi unire i due foreach come potrei fare?

    Grazie.


  • Super User

    Ciao, metti i due if dentro ad un unico foreach legati con un else.
    Il PHP farà il primo controllo e se è falso passa al secondo. Se uno dei due è vero la rispettiva "unset()" eliminerà la chiave.

    M.


  • Super User

    Ho risolto così grazie alla segnalazione di un utente:

    
     <?php
    //PAGINE DEI GRUPPI
    $to_search = array('edit.php?post_type=gpages', 'post-new.php?post_type=page');
    foreach ( $menu as $mkey => $m ) {
        foreach($to_search as $find) {
            $key = array_search( $find, $m );
            if ( $key )
                unset( $menu[$mkey] );
        }
    }
    ?> 
    
    

    Grazie.