Sonsuz kategorilendirme

Sonsuz kategorilendirme için güzel bir fonksiyon:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function kategori($lev, $par, $arr)
{
	foreach ($arr as $a)
	{
		if($a[2] == $par)
		{
			for($i = 0; $i < $lev; $i++)
				echo " »";
			echo $a[1]."<br />\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);
?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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)

Tags: , , ,

Leave a Reply