aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Text/Tagadelic.php
blob: b96b60d3e844ec8717861c8c2f30ce7627b80fe4 (plain) (blame)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

namespace Zotlabs\Text;


class Tagadelic {

	static public function calc($arr) {

		$tags = array();
		$min = 1e9;
		$max = -1e9;

		$x = 0;
		if(! $arr)
			return array();

		foreach($arr as $rr) {
			$tags[$x][0] = $rr['term'];
			$tags[$x][1] = log($rr['total']);
			$tags[$x][2] = 0;
			$min = min($min,$tags[$x][1]);
			$max = max($max,$tags[$x][1]);
			$x ++;
		}

		usort($tags, [self::class, 'tags_sort']);

		$range = max(.01, $max - $min) * 1.0001;

		for($x = 0; $x < count($tags); $x ++) {
			$tags[$x][2] = 1 + floor(9 * ($tags[$x][1] - $min) / $range);
		}

		return $tags;
	}

	static public function tags_sort($a,$b) {
		if(strtolower($a[0]) == strtolower($b[0]))
			return 0;
		return((strtolower($a[0]) < strtolower($b[0])) ? -1 : 1);
	}

}