Há tempo não vinha postar algo aqui, a correria anda grande, mas vamos ao que interessa.

Hoje novamente varrer um array em PHP e montar uma estrutura hierarquica desse array, como dessa vez o google não me trouxe nada pronto, precisei rapidamente montar uma função para isso e estou aqui compartilhando com quem precisar.

Não vou ficar aqui filosofando sobre o código, ele segue abaixo pronto para utilização, qualquer dúvida comentem aí e quando houver tempo eu respondo… 😉

 

<?php
/*
 @author Jackson jorge - Planweb Interativa - www.planweb.com.br
 @copyright Copyright (c) 2012, Planweb Interativa
 @version 1.0
 
 Esta funcao varre um array montando toda a sua hierarquia em listas <ol> ou <ul>
 Fique a vontade para adaptá-la à sua necessidade mas mantenha os créditos.
 
 Utilização:
 echo loop_recursivo($array);
*/
 
function loop_recursivo($array,$nivel=0,$histKey="") {
$out = '';
$bar = $separador;
$nivel++;
  $out .= '<ul>';
  foreach($array as $key => $value) {
	if(is_array($value)) {
	  $marcador = ($histKey) ? $histKey.'&rarr;' : '';
	  $out .= '<li>' . $marcador .'<b>'. $key.'</b>' .loop_recursivo($value,$nivel,$marcador.$key).'</li>';
	}else{
	  $out .= '<li>' . $key .': ' .$value . '</li>';
	}
  }
  $out .= '</ul>';
return $out;
}
 
# Array para teste da função
$estoque['alimentacao']['carnes']['bovina'][]='Mignon';
$estoque['alimentacao']['carnes']['bovina'][]='Picanha';
$estoque['alimentacao']['carnes']['bovina'][]='Costela';
$estoque['alimentacao']['carnes']['bovina'][]='Alcatra';
$estoque['alimentacao']['carnes']['bovina'][]='Filé';
$estoque['alimentacao']['carnes']['bovina'][]='Bucho';
 
$estoque['alimentacao']['carnes']['aves'][]='Coxa';
$estoque['alimentacao']['carnes']['aves'][]='Peito';
$estoque['alimentacao']['carnes']['aves'][]='Pescoço';
$estoque['alimentacao']['carnes']['aves'][]='Carcaça';
$estoque['alimentacao']['carnes']['aves'][]='Miúdos';
 
$estoque['alimentacao']['bebidas']['sucos'][]='Maguary Maracujá';
$estoque['alimentacao']['bebidas']['sucos'][]='Maguary Cajú';
$estoque['alimentacao']['bebidas']['sucos'][]='Maguary Abacaxi';
$estoque['alimentacao']['bebidas']['sucos'][]='Maguary Uva';
 
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Guaraná Antartica';
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Coca Cola';
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Kuat';
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Sprite';
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Fanta Laranja';
$estoque['alimentacao']['bebidas']['refrigerantes'][]='Fanta Uva';
 
$estoque['alimentacao']['cesta-basica'][]='Arroz';
$estoque['alimentacao']['cesta-basica'][]='Feijão';
$estoque['alimentacao']['cesta-basica'][]='Macarrão';
$estoque['alimentacao']['cesta-basica'][]='Sal';
 
$estoque['utensilios']['casa']['cozinha'][]='Pratos';
$estoque['utensilios']['casa']['cozinha'][]='Talheres';
$estoque['utensilios']['casa']['cozinha'][]='Toalha de Mesa';
 
$estoque['utensilios']['casa']['lazer'][]='Mangueira de Jardim';
$estoque['utensilios']['casa']['lazer'][]='Vaso de Flor';
$estoque['utensilios']['casa']['lazer'][]='Quadro';
 
$estoque['eletronicos']['informatica'][]='Computador';
$estoque['eletronicos']['informatica'][]='Notebook';
$estoque['eletronicos']['eletros-lar']='Máquina de Lavar';
$estoque['eletronicos']['ferramentas'][]='Furadeira';
$estoque['eletronicos']['ferramentas'][]='Furadeira';
 
# Testando
echo loop_recursivo($estoque);
 
?>
Related Posts Plugin for WordPress, Blogger...

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Spam Protection by WP-SpamFree