Sonsuz kategorilendirme

Sonsuz kategorilendirme için güzel bir fonksiyon:

function kategori($lev, $par, $arr)
{
	foreach ($arr as $a)
	{
		if($a[2] == $par)
		{
			for($i = 0; $i < $lev; $i++)
				echo " »";
			echo $a[1]."
n"; kategori($lev + 1, $a[0], $arr); } } } $kategoriler = array( array(1, 'Bilgisayar', 0), array(2, 'Donanım', 1), array(3, 'İşletim Sistemi', 1), array(4, 'Ekran Kartı', 2), array(5, 'Nvidia', 4), array(6, 'ATI', 4), array(7, 'İşlemci', 2), array(8, 'Intel', 7), array(9, 'AMD', 7), array(10, 'Linux', 3), array(11, 'Debian', 10), array(12, 'Ubuntu', 10), ); kategori(0, 0, $kategoriler);
#!/usr/bin/python

kategoriler = [
	[1, 'bilgisayar', 0],
	[2, 'donanim', 1],
	[3, 'isletim sistemi', 1],
	[4, 'ekran karti', 2],
	[5, 'nvidia', 4],
]

def f(seviye, par, arr):
	for a in arr:
		if a[2] == par:
			for i in range(seviye):
				print '+',
			print a[1]
			f(seviye+1, a[0], arr)

f(0, 0, kategoriler)