/[clipping]/cyclic_arr.class.php
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /cyclic_arr.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Wed Nov 7 15:24:13 2001 UTC (17 years, 11 months ago) by dpavlin
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +6 -0 lines
novi ispis

1 <?php
2
3 // implementation of Cyclic array
4 // 2001-11-03 Dobrica Pavlinusic <dpavlin@rot13.org>
5
6 // generally functions return boolean if array looped
7
8 class Cyclic_Arr {
9 var $size; // number of elements before cycle
10 var $arr = Array(); // actual data
11 var $pos = 0; // current position
12 var $did_loop = 0; // did last move made loop?
13
14 // init size of array
15 function set_size($size) {
16 $this->size=$size;
17 }
18
19 // put element into array, move to next
20 function push($val) {
21 $this->arr[$this->pos] = $val;
22 $this->next();
23 //return $this->did_loop;
24 }
25
26 // get element from array, move to next
27 function fetch() {
28 $out = $this->arr[$this->pos];
29 $this->next();
30 return $out;
31 }
32
33 function fetch_rev() {
34 $out = $this->arr[$this->pos];
35 $this->prev();
36 return $out;
37 }
38
39 // move to next
40 function next() {
41 if ($this->pos == $this->size) $this->did_loop = 1;
42 $this->pos = ($this->pos + 1) % $this->size;
43 return $this->did_loop;
44 }
45
46 // move to previous
47 function prev() {
48 if ($this->pos == 0) $this->did_loop = 1;
49 $this->pos = ($this->pos + $this->size - 1) % $this->size;
50 return $this->did_loop;
51 }
52
53 // tell size of array
54 function tell_size() {
55 return $this->size;
56 }
57
58 // tell current position in array
59 function tell_pos() {
60 return $this->pos;
61 }
62
63 function did_loop() {
64 return $this->did_loop;
65 }
66
67 }
68
69 ?>

  ViewVC Help
Powered by ViewVC 1.1.26