Foros del Web » Programando para Internet » PHP »

Duplicado no deseado de foreach adentro de foreach (Arrays)

Estas en el tema de Duplicado no deseado de foreach adentro de foreach (Arrays) en el foro de PHP en Foros del Web. Bueno cree un codigo con 2 foreach ya que tengo 2 arrays, funciona y me crea los resultados deseados pero tambien un resultado indeseado a ...
  #1 (permalink)  
Antiguo 22/10/2011, 15:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Duplicado no deseado de foreach adentro de foreach (Arrays)

Bueno cree un codigo con 2 foreach ya que tengo 2 arrays, funciona y me crea los resultados deseados pero tambien un resultado indeseado a la derecha. Me duplica los valores de un Array... Foto adjunta

No se si tengo problemas de concatenación o si la sintaxis de poner un foreach adentro del otro esta mal. No encontre solucion en google.

Codigo PHP:
Código PHP:
<link href="temp.css" rel="stylesheet" type="text/css" />
<?php

$input_title 
= array ('First News','Second News','Third News','Fourth News','Fifth News');

//$input_text

$input_pic = array ('post1.jpg''post2.jpeg''post3.jpeg''post4.jpeg''post5.jpeg');

foreach(
$input_pic as $picture) {
    print 
"<table class=\"block_content_news_boxes\">";
    print 
"<tr>";
    print 
"<td><img src=\"$picture\"></td>";
    
foreach(
$input_title as $value) {
    print 
"<td>El valor de mi Array es = $value</td>";
    print 
"</tr></table><br>";
     } 
}

?>
  #2 (permalink)  
Antiguo 22/10/2011, 15:32
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

¿Podrías decirnos qué es lo que quieres lograr? Es decir, ¿cuál es el resultado final que deseas?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 22/10/2011, 15:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

Si tienes 2 bucles es obvio que se te duplique todo, prueba este ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $input_title = array('First News', 'Second News', 'Third News', 'Fourth News', 'Fifth News');
  4. $input_pic = array('post1.jpg', 'post2.jpeg', 'post3.jpeg', 'post4.jpeg', 'post5.jpeg');
  5.  
  6. foreach ($input_pic as $c => $picture) {
  7.     print "<table class=\"block_content_news_boxes\">";
  8.     print "<tr>";
  9.     print "<td><img src=\"$picture\"></td>";
  10.     print "<td>El valor de mi Array es = $input_title[$c]</td>";
  11.     print "</tr></table><br>";
  12. }

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 22/10/2011, 15:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

sacar el resultado indeseado de la derecha, el texto que esta afuera de los tables
  #5 (permalink)  
Antiguo 22/10/2011, 15:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

Sólo para que sepas, la tabla (table) se debe cerrar y abrir fuera del bucle pero no me dejaste editar tampoco me fijo en el html.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 22/10/2011, 15:40
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

Ok gracias, pregunto, poner un foreach adentro de otro foreach no funciona? lo he visto varias veces..es para saber si iba en buen camino o no.
Cuando pones $c lo que estas haciendo es como robar el index de un array y tambien usarlo en el otro array para que esten sincronizados los valores cierto?

en fin, gracias!
  #7 (permalink)  
Antiguo 22/10/2011, 15:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

Claro que funciona pero si lo haces así va a iterar 5 veces y cada una de esas veces va a iterar otras 5 veces, por eso no te sirve así:

Código PHP:
Ver original
  1. <?php
  2. $input_title = array('First News', 'Second News', 'Third News', 'Fourth News', 'Fifth News');
  3. $input_pic = array('post1.jpg', 'post2.jpeg', 'post3.jpeg', 'post4.jpeg', 'post5.jpeg');
  4.  
  5. print '<table class="block_content_news_boxes">';
  6. foreach ($input_pic as $c => $picture) {
  7.     print "<tr>";
  8.     print "<td><img src=\"$picture\"></td>";
  9.     print "<td>El valor de mi Array es = $input_title[$c]</td>";
  10.     print "</tr>";
  11. }
  12. print '</table>';

Si con $c estoy tomando la clave del mismo array ya que tienen el mismo número de elementos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 22/10/2011, 15:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: Duplicado no deseado de foreach adentro de foreach (Arrays)

genial! con eso ya puedo armar otras cosas tmb.. muy buena solucion, ya le agarre la mano

Etiquetas: deseado, duplicado, 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 05:01.