PHP - Problema con for

   
Vista:

Problema con for

Publicado por Pascual (2 intervenciones) el 08/09/2014 19:38:19
Buenas,estoy programando por primera vez en php,hasta ahora siempre habia hecho modificaciones tontas y ahora he decidido meterme a hacerlo todo desde 0, bueno os comento tengo este codigo:

foreach($enlaces[0] as $P=>$C){
$enlaces[$P] = $enlaces[1][$P];
//echo $enlaces[$P];
}

hasta aqui todo bien,luego sigue mas codigo que no tiene nada que ver y por ultimo intento imprimirlo con un for.

for ($i=0; $i <=$P; $i++){
echo '<center>'.$enlaces[$i].'<br /></center>';
}

El problema que tengo es que al imprimirlo solo me imprime un enlace y son 3 o 4 y a veces incluso mas, como podeis ver arriba tengo un //echo $enlaces[$P]; para probar y si me muestra correctamente todos los enlaces,el problemas lo tengo con el for que solo me muestra un solo enlace. Gracias y habe si me podeis ayudar!.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con for

Publicado por Gonzalo (338 intervenciones) el 08/09/2014 20:37:23
y si que eres nuevo en php, bienvenido Pascual, vamos a tratar de ayudarte.

suponiendo que:

$Enlaces= array("uno","dos","tres");

entonces

foreach($Enlaces as $p=>$c)
// enlaces sin indice te da todos los indices dentro de Enlace, si incluyes el [0] te da solo ese indice ignorando los demas

//el quebradero de cabeza esta en esta orden
$enlaces[$P] = $enlaces[1][$P];
//que pretendes hacer con esa linea?, solo te va a reiniciar las cadenas y va a destruir el array original dejandolo asi

enlaces[0]="d"
enlaces[1]="o"
enlaces[3]="s"

//segunda parte del problema

for($i=1;$i<count($Enlaces);$i++)

//este for recorre todo el array tenga los indices que tenga.

y una ultima pregunta: para que centras una cadena que tiene un salto de linea mal escrito?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con for

Publicado por Pascual (2 intervenciones) el 08/09/2014 23:21:18
Agradezco tu ayuda de verdad,el problema es que como te comente estoy aprendiendo con lo que voy encontrado googleando de ahi que me pierda tanto, te explico:

preg_match_all('|ingredientes de la receta:(.*)|sU',$iframe,$enlaces); <- imagina que estamos sacando una receta

tengo un preg_match_all que me da una informacion bien puede ser una sola como varias(pera o pera piña melocoton...)
luego tengo esto
foreach($enlaces[0] as $P=>$C){
$enlaces[$P] = $enlaces[1][$P];
//echo $enlaces[$P];
}

que como comente antes el "echo" que se ve me sirve para comprobar si lo saca todo y verlo impreso, asi que lo compruebo todo hasta aqui y aparece correcto,me lista bien:
Pera
Piña
Melocoton

el problema lo tengo luego con el for
for ($i=0; $i <=$P; $i++){
echo '<center>'.$enlaces[$i].'<br /></center>';
}

en el for me encuentro que solo me imprime esto
Pera
la piña y el melocoton se lo come con patatas vamo(nunca mejor dicho xD).

He probado con los cambios que me comentas pero no me imprime nada en la pantalla:S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con for

Publicado por Gonzalo (338 intervenciones) el 08/09/2014 23:50:15
por favor alguien corrijame si estoy mal.
preg match se usa para condicionar un texto, busca texto no deseado y lo bloquea.
no veo problema con la orden preg match si consideras que es necesario usarla entonces yo creo que deberia estar bien.

el primer problema que en mi opinion te causa problemas esta en este codigo

foreach($enlaces[0] as $P=>$C){
$enlaces[$P] = $enlaces[1][$P];
//echo $enlaces[$P];
}

foreach recorre un array (como lo explique en el post anterior), asi que lo que el foreach pudiera estar haciendo es recorrer caracter por caracter lo que sea que este en $enlaces[0]="Pera" (solamente en este indice, los demas se ignoran)

y despues viene esta linea

$enlaces[$P] = $enlaces[1][$P];

en el primer ciclo es resuelve esta ecuacion

ciclo 0, $enlaces[0]=enlaces[1][0] (que en este caso es el primer caracter de el elemento "Piña", o sea P)

en este punto el codigo ve que solo hay 1 carater en $enlaces[0] y termina el foreach quedando el valor de $P=0;

y al final tratas de imprimir el array, como $P=0 entonces solo imprime el primero.

en pocas palabras, esta muy confuso lo que quieres hacer en ese codigo, lo que pienso es que necesitas dividir el problema en 2 y explicar mejor que es lo que pretendes hacer en cada caso.

ahora bien, si lo qu equieres es dividir la linea "Peras||Piñas||Melocoton" ya te pase un ejemplo, has el intento y pruebalo ese ejemplo, anexa los errores si es que salen.

suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar