Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/02/2010, 07:25
manzarinaa
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: Recursividad. Buscar un número en un array x niveles de profundidad

no entiendo muy bien la pregunta...
me podría venir 9128378917 como dices, pero por dios! espero que no!! que esto es un autonumerico y llegar a eso ...bufff.
yo quisiera que me devolviera un array (43,44, 56, 98)
lo he tocado ya un poco, y sigue sin funcionar.
La idea ahora es, antes de llamar a la recursiva, llamar a una funcion que inicie el array donde se van a guardar y esta ya, llame a la funcion...pero sigue sin hacer lo que tiene que hacer.
Muchisimas gracias por contestar, estoy ya de los pelos.


llamo a la que inicio:
Código:
$ids=$this->ini_agafa_ids($data);
esta es la funcion de inicio:
Código:
function ini_agafa_ids($data)
		{
		$ids= array();
		$ids[]=$this->agafa_ids($data);
		echo "<hr>";
		var_dump($ids);
		echo "<hr>";
		return $ids;
		}
y asi tengo la recursiva:

Código:
function agafa_ids($data)
		{
		foreach($data as $dato)
			{
			//echo "$dato--> " . $dato . " es ";
			if(is_array($dato))
				{
				//echo "array <br>";
				//$this->agafa_ids($dato);
				$ids[] = $this->agafa_ids($dato);

				}
			else{
				if(is_numeric($dato) && $dato != NULL)
					{
					$ids[]=$dato;
					//echo "numero <br>";
					}else{
					//echo "otra cosa <br>";
					}
				}
			}
		return $ids;
		}
Me devuelve esto:
esto de una pasada
array(1) { [0]=> array(2) { [0]=> NULL [1]=> string(2) "43" } }
y esto de otra
array(1) { [0]=> array(2) { [0]=> array(2) { [0]=> NULL [1]=> string(2) "44" } [1]=> NULL } }

no me los junta