Foros del Web » Programando para Internet » PHP »

For each php D:

Estas en el tema de For each php D: en el foro de PHP en Foros del Web. Código: <?php $nodes = array( 'id'=>'1', 'parent_id'=>null, 'text'=>'Negocio', 'Nivel'=>'0', 'Fecha_inicio'=>'02-01-2012', 'Fecha_termino'=>'29-02-2012', 'files'=> array( 'id'=>'1', 'parent_id'=>'1', 'text'=>'Presupuesto', 'Nivel'=>'1', 'Fecha_inicio'=>'02-01-2012', 'Fecha_termino'=>'12-02-2012', 'files'=>array( 'id'=>'1', 'parent_id'=>'1', 'text'=>'Paquete', 'Nivel'=>'2', 'Fecha_inicio'=>'02-01-2012', ...
  #1 (permalink)  
Antiguo 21/02/2012, 06:37
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 1
For each php D:

Código:
<?php
$nodes = array(
                        'id'=>'1',
                        'parent_id'=>null,
			'text'=>'Negocio',
                        'Nivel'=>'0',
                        'Fecha_inicio'=>'02-01-2012',
                        'Fecha_termino'=>'29-02-2012',
			'files'=> array(
                                    'id'=>'1',
                                    'parent_id'=>'1',
                                    'text'=>'Presupuesto',
                                    'Nivel'=>'1',
                                    'Fecha_inicio'=>'02-01-2012',
                                    'Fecha_termino'=>'12-02-2012',
                                    'files'=>array(
                                            
                                            'id'=>'1',
                                            'parent_id'=>'1',
                                            'text'=>'Paquete',
                                            'Nivel'=>'2',
                                            'Fecha_inicio'=>'02-01-2012',
                                            'Fecha_termino'=>'12-02-2012',
                                            ),
                                            array(
                                                    'id'=>'2',
                                            'parent_id'=>'1',
                                            'text'=>'Paquete2',
                                            'Nivel'=>'2',
                                            'Fecha_inicio'=>'02-01-2012',
                                            'Fecha_termino'=>'12-02-2012',
                                            ),
                                            array(
                                                    'id'=>'3',
                                            'parent_id'=>'1',
                                            'text'=>'Paquete3',
                                            'Nivel'=>'2',
                                            'Fecha_inicio'=>'02-01-2012',
                                            'Fecha_termino'=>'12-02-2012',
                                            ) ),
                            array(
                                    'id'=>'2',
                                    'parent_id'=>'1',
                                    'text'=>'Presupuesto2',
                                    'Nivel'=>'1',
                                    'Fecha_inicio'=>'03-01-2012',
                                    'Fecha_termino'=>'08-02-2012'
                            ),
                            array(
                                    'id'=>'3',
                                    'parent_id'=>'1',
                                    'text'=>'Presupuesto3',
                                    'Nivel'=>'1',
                                    'Fecha_inicio'=>'04-01-2012',
                                    'Fecha_termino'=>'010-02-2012',
                                    'files'=>array(
                                                'id'=>'5',
                                            'parent_id'=>'3',
                                            'text'=>'Presupuesto3',
                                            'Nivel'=>'2',
                                            'Fecha_inicio'=>'04-01-2012',
                                            'Fecha_termino'=>'010-02-2012',
                                            'files'=>
                                                    array(
                                                            'id'=>'6',
                                                            'parent_id'=>'5',
                                                            'text'=>'Paquete4',
                                                            'Nivel'=>'2',
                                                            'Fecha_inicio'=>'04-01-2012',
                                                            'Fecha_termino'=>'010-02-2012'
                                                    ),
                                                    array(
                                                            'id'=>'7',
                                                            'parent_id'=>'5',
                                                            'text'=>'Paquete5',
                                                            'Nivel'=>'2',
                                                            'Fecha_inicio'=>'04-01-2012',
                                                            'Fecha_termino'=>'10-02-2012'
                                                    )),
                            array(
                                    'id'=>'8',
                                    'parent_id'=>'1',
                                    'text'=>'Presupuesto4',
                                    'Nivel'=>'1',
                                    'Fecha_inicio'=>'06-01-2012',
                                    'Fecha_termino'=>'12-02-2012',
                            )
	);
$hola=recorro($nodes,0,$prueba,$i);

function recorro($nodes,$id,$prueba,$i){
 foreach($nodes as $key=>$value){
            
             if (is_array($value)){  
                        //si es un array sigo recorriendo
                      if($value['parent_id']==$_GET['parent_id'])
                      {
                          print_r('array cero');
                          $prueba[$key]=$value;
                      
                      }
                	recorro($value,$id,$prueba,$i);
		}else{  
                             
                      //print_r($prueba);
		       //si es un elemento lo muestro
                         
                   // echo $key.': '.$value ;
			//echo '<br>';
                     
                     //$prueba[$key]=$value;
                      echo 'hola';  
                      
                                print_r($prueba);
                                echo '|||||'; 
                      }
                    
                     // print_r($prueba);
                                   
                      
                            }
                                echo 'chao';
                              return $prueba;      
                                    }                                      
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<script type="text/javascript" src="jquery-latest.pack.js?200709092021"></script>
<script type="text/javascript" src="acordeon3.js?200709092021"></script>
</head>
    <body>

    <div id="Nombre" style="position: absolute; top:30x; left: 30px; width: 200px;height: 200px;">
    <?php echo $_GET['Nombre'];?>
    </div>
    <div id="Nombre" style="position: absolute; top:100x; left: 150px; width: 200px;height: 200px;">
    <?php echo $_GET['Fecha_ini'];?>
    </div>
    <div id="Nombre" style="position: absolute; top:190x; left: 240px; width: 200px;height: 200px;">
    <?php echo $_GET['Fecha_ter'];?>
    </div>
    
    <?php
    
    foreach ($hola as $key=>$value)
    {
        if (is_array($value))
        {
        if($value['parent_id']==$_GET['parent_id'])
                      {
            if(is_array($value['files'])){
                echo '</br>';
                          echo '<pre>';?>
                
    <div id="Nombres1" style="position: absolute; top:250x; left: 30px;"><a href="acordeon4.php" class="enlace" id="negocio"><?php print_r($value['text']); ?></a></div>
     <div id="Fechaini" style="position: absolute; top:300x; left: 150px; "><?php print_r($value['Fecha_inicio']); ?></div>
     <div id="Fechater" style="position: absolute; top:390x; left: 240px; "><?php print_r($value['Fecha_termino']); ?></div>
     <br/>
     <div id="diez" style="position: absolute; top:30x; left: 30px; width: 200px;height: 200px;">
    
    </div>
    <? echo '</pre>';
            }else{
                           echo '</br>';
                          echo '<pre>';?>
    <div id="Nombres" style="position: absolute; top:250x; left: 30px; width: 200px;height: 200px;"><?php print_r($value['text']); ?></div>
     <div id="Fechaini" style="position: absolute; top:300x; left: 150px; width: 200px;height: 200px; "><?php print_r($value['Fecha_inicio']); ?></div>
     <div id="Fechater" style="position: absolute; top:390x; left: 240px; width: 200px;height: 200px;"><?php print_r($value['Fecha_termino']); ?></div>
                          <?
                          echo '</pre>';
            }
                      }
        }   
       }
    ?>
       
    </body>

</html>
tengo ese codigo.....
cuando la funcion recorro.... esta dentro del if.... pareciera que prueba se pierde
en cierto momento.... por que cuando retorno vuelve vacio.... alguien puede saber por que es?

de antemano muchas gracias

saludos
  #2 (permalink)  
Antiguo 21/02/2012, 08:02
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 4
Respuesta: For each php D:

Hola...
no entiendo....
$hola no es un array

$hola=recorro($nodes,0,$prueba,$i);

y en recorro no hay return solo echo y print_f....

te recomiendo a nodo crearlo asy

$nodo[1] = array('parent_id'=>null,
'text'=>'Negocio',
'Nivel'=>'0',
'Fecha_inicio'=>'02-01-2012',
'Fecha_termino'=>'29-02-2012',
'Files' => array(.....
$nodo[2] = array(.....
)
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #3 (permalink)  
Antiguo 21/02/2012, 08:26
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: For each php D:

Cierra correctamente los las llaves y paréntesis en tú código. Es importante tener el código ordenado para evitar esos fallos. Por ejemplo en la línea 88 tus arrays están mal cerrados.

la variable $prueba y la variable $i no están definidas, y $i ni se usa.

Cambia los <? por <?php

Te saldrán errores en los $_GET si no existen y no los compruebas con isset()

Comprueba también tu función:

1º No te va a encontrar el $value['parent_id']; Haz un var_dump() del array y entenderás que value te devuelve -> Hola y un array.

2º Se puede evitar la recursividad para lo que intentas hacer.

Mi consejo es un buen tutorial de arrays y foreachs
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Etiquetas: html
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 14:43.