Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Foreach

Estas en el tema de Foreach en el foro de PHP en Foros del Web. Código PHP:     $label  = array( 'a' , 'b' );     foreach( $label  as  $label1 ):         if(! strpos ( $_POST [ 'code' ],  $label1 ) !==  FALSE ):             echo  ...
  #1 (permalink)  
Antiguo 09/09/2013, 14:52
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Foreach

Código PHP:
    $label = array('a','b');
    foreach(
$label as $label1):
        if(!
strpos($_POST['code'], $label1) !== FALSE):
            echo 
'No contiene';
        endif;
    endforeach;

        if(
$_GET['type'] == 'index'):
                    
//Sentencia
            
echo '<div class="alert alert-danger">Editado correctamente</div>';
        else:
                    
//Sentencia
            
echo '<div class="alert alert-danger">Editado correctamente</div>';
        endif; 
Como podria hacer para que si lo contiene no se ejecutase el codigo del
Código PHP:
if($_GET['type'] == 'index'):
                    
//Sentencia
            
echo '<div class="alert alert-danger">Editado correctamente</div>';
        else:
                    
//Sentencia
            
echo '<div class="alert alert-danger">Editado correctamente</div>';
        endif; 
¿Lo pongo dentro del foreach? Entonces creo que se ejecutaria todo el codigo demasiadas vecez. ¿Cual es la mejor opcion?
  #2 (permalink)  
Antiguo 09/09/2013, 15:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Foreach

Puedes definir una variable antes de todo en FALSE, luego al encontrar algo dentro del foreach() la cambias a TRUE.

Ya con esa variable deberías condicionar el siguiente bloque if() y no más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/09/2013, 15:23
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Foreach

Código PHP:
Ver original
  1. $label = array('a','b');
  2. $contains=false;
  3.     foreach($label as $label1):
  4.         $contains = $contains || (strpos($_POST['code'], $label1) !== FALSE):          
  5.     endforeach
  6.  
  7.     if(!$contains)
  8.     {
  9.         ....
  10.      }
  #4 (permalink)  
Antiguo 09/09/2013, 16:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

No me funciona tu codigo
Código PHP:
Ver original
  1. $label = array('a','b');
  2.     foreach($label as $label1):
  3.         if(!strpos($_POST['code'], $label1) !== FALSE):
  4.             echo '<em>'.$label1.'</em><br>';
  5.         elseif($_GET['type'] == 'index'):
  6.            //Sentencia
  7.             echo '<div class="alert alert-danger">Editado correctamente</div>';
  8.         else:
  9.            //Sentencia
  10.             echo '<div class="alert alert-danger">Editado correctamente</div>';
  11.         endif;
  12.     endforeach;

He he echo de la siguiente manera:
  #5 (permalink)  
Antiguo 09/09/2013, 16:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Foreach

Pues yo no lo veo ni remotamente parecido, parece que has entendido otra cosa, ¿de verdad no te das cuenta que no se parecen en nada?

Observa bien la estructura de control, en el ejemplo que te han dado el bloque if() no está dentro del foreach(), pon atención ahí.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 09/09/2013, 17:14
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

pero esque no lo entiendo, si me lo podrias poner un ejemplo te lo agradeceria
  #7 (permalink)  
Antiguo 09/09/2013, 17:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Foreach

¿Más ejemplos?

Vamos, si con el que te han brindado no lo entiendes, ¿para qué quieres otro?

Te puedo hacer el mismo ejemplo con seudo-código, a ver si te gira la ardilla:
Código PHP:
contiene no

iteramos 
{
  
si (tal cosa es cierta) {
    
contiene si
  
}
}


si (contiene es verdadero) {
  
mostramos el mensaje

Eso debería servirte para entender la estructura de control que necesitas usar.

Tu problema es ese, no reflexionas lo suficiente de la estructura de control a utilizar, cosa muy básica debo decir.

Como dice la ya clásica frase "resuelve el problema, luego escribes el código", claramente no lo estás haciendo bien, aún ni comprendes como resolver tu problema y ya estás tirando código que ni tu mismo te explicas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 10/09/2013, 02:20
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

Código PHP:
Ver original
  1. $contiene = false;
  2.  foreach(){
  3.     if(condicion){
  4.         $contiene = true;
  5.     }
  6.  }
  7.  
  8. if($contiene == true){
  9.  
  10. }else{
  11.  
  12. }

¿Asin seria no?
  #9 (permalink)  
Antiguo 10/09/2013, 03:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

Pero primero el if puede ser false y despues cambiar a true, entonces no daria error.
  #10 (permalink)  
Antiguo 10/09/2013, 04:31
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

Consegui hacerlo:
Código PHP:
Ver original
  1. <?php
  2. $valor = array('a','b');
  3. $contenido = false;
  4. $letra = '';
  5.  
  6. foreach($valor as $valor1){
  7.     if(strpos('123456ab', $valor1)){
  8.         $contenido = true;
  9.         $letra .= $valor1;
  10.     }
  11. }
  12.  
  13. if($contenido == true){
  14.     echo 'Contiene'.$contenido.$letra;
  15. }else{
  16.     echo 'No contiene'.$contenido;
  17. }
  18. ?>

Pero tengo una duda cuando el if es correcto la variable $contendio se convierte en true (1) y si no esta en false(0) pero porque cuando lo muestor me sale Contiene1 (Es true) y si no lo contiene sale No contiene (No sale el 0 de false) ¿Porque?
  #11 (permalink)  
Antiguo 10/09/2013, 09:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Foreach

Mira esto:

Código PHP:
Ver original
  1. echo FALSE; // (nada)
  2. echo TRUE; // 1

La conversión de boolean a string es sencilla, en el caso de TRUE arroja un 1, y en el caso de FALSE nada, revisa las tablas de conversión en el manual de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 10/09/2013, 09:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

Creia que FALSE era 0 y TRUE 1.

Ya lo solucione utilizando otra funcion que era la correcta
  #13 (permalink)  
Antiguo 10/09/2013, 09:48
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Foreach

si queres etar seguro de comprar bien usa el operador "identico"

if($contenido === true){
  #14 (permalink)  
Antiguo 10/09/2013, 09:54
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Foreach

Muchas gracias. Ya funciona todo correctamente

Etiquetas: foreach
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:33.