Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedradegelo

[Resolvido] padrão recursivo para array multidimensão

Recommended Posts

Olá pessoal,

estou a bolar uma função recursiva para varrer um array multidimensional,

só que hora o array pode ser com índice de números, hora de palavras.

Aí hora que ele encontra um índice de palavras ele para.

 

Alguém tem idéia de como consertar?

 

Abraços.

 

Array

 

$dados2[0] = array("casa" => array(0 => "casa", 1 => "casa"));

function setData($array)
{
	if(is_array($array))
	{
		echo "array"."<br />";
		for($i=0; $i < count($array);$i++)
		{
			if(isset($array[$i]))
			{
				setData($array[$i]);
			}
		}
	}
	else
	{
		echo "no array";
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

estou a bolar uma função recursiva para varrer um array multidimensional,

só que hora o array pode ser com índice de números, hora de palavras.

Aí hora que ele encontra um índice de palavras ele para.

 

Use foreach:

$dados2[0] = array("casa" => array(0 => "casa", 1 => "casa"));

function setData( array $array , $level = 0 ){
    foreach ( $array as $key => $value ){
        if ( is_array( $value ) ){
            printf( "%sarray[ %s ] {\n" , str_repeat( "\t" , $level ) , $key );
            setData( $value , $level + 1 );
            printf( "%s}\n" , str_repeat( "\t" , $level ) );
        }
        else printf( "%sarray[ %s ] = %s\n" , str_repeat( "\t" , $level ) , $key , $value );
    }
}

setData( $dados2 );

A saída deverá ser:

 

array[ 0 ] {
    array[ casa ] {
        array[ 0 ] = casa
        array[ 1 ] = casa
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.