Witam,
Mam tablicę z której usuwam wszystkie pozycje pojedynczo za pomocą unset($tablica[$nr]).
Co zrobić aby dodając dane do pustej tablicy za pomocą array_push wystartować od wskaźnika tablicy 1 a nie 0?
Dziękuję za pomoc.
<?php /** * Klasa implementujaca algorytm listy * * @author blooregard * @package algorithms * @version 1.0 * */ class Lista { /** * tablica elementow listy * @param integer */ /** * konstruktor */ public function __construct() { }//__construct() /** * konwersja obiektu Lista do string * * @return object serializowany obiekt klasy Lista */ public function __toString() { }// /** * wstawia element na podana pozycje w liscie * * Po wstawieniu rozmiar listy zwiekszany jest o jeden. * Jesli wskazana pozycja jest ujemna lub wieksza od aktualnego rozmiaru listy, * zwracany jest FALSE * * @param integer pozycja listy, n ktorej ma byc wstawiony element * @param mixed wartosc do wstawienia * */ public function insert($element , $value) { $i = 0; foreach ($this->elements as $current) { if ($i == $element) { $result_array[] = $value; }//if $result_array[] = $current; $i++; }//foreach }//insert() /** * dodaje element na koncu listy * * @param mixed wartosc do wstawienia */ public function add($value) { $this->elements[] = $value; }//add() /** * usuwa element listy o podanym indeksie * * Romiar listy zostaje zmniejszony o 1. Jesli wskazana pozycja * jest ujemna badz wykracza poza liste, zwracany jest FALSE * * @param integer indeks elementu do usuniecia z listy */ public function delete($element) { if ($element < 0 || $element > $this->size()) return false; foreach ($this->elements as $current) { if (!($i == $element)) { $result_array[] = $current; }//if $i++; }//foreach }//delete() /** * zwraca podany element listy * * Jesli wskazana pozycja jest ujemna lub wieksza od aktualnego rozmiaru listy, * zwracany jest FALSE * * @param integer indeks elementu do pobrania * */ public function get($element) { if ($element < 0 || $element > $this->size()) return false; return ($this->elements[$element]); }//get() /** * ustawia wartosc podanego elemenu listy * * Jesli wskazana pozycja jest ujemna lub wieksza od aktualnego rozmiaru listy, * zwracany jest FALSE * * @param integer indeks elementu do ustawienia * @param mixed wartosc */ public function set($element ,$value) { if ($element < 0 || $element > $this->size()) return false; $this->elements[$element] = $value; }//get() /** * zwraca pozycje podanej wartosci w liscie * * Jesli podana wartosc istnieje w liscie, zwraca indeks elementu * * @param mixed szukana wartosc */ public function indexOf($value) { $i = 0; foreach($this->elements as $current) { if ($current == $value) return $i; $i++; }//foreach return false; }//indexOf() /** * zwraca aktualny rozmiar listy */ public function size() { }//size() /** * wyswietla liste */ public function show() { $i = 0; for ($i; $i < $this->size(); $i++) { }//for }//show() /** * wykorzystany algorytm: sortowanie babelkowe * liczba przebiegow "przestawiania" rowna jest ilosci elementow listy-1, * czyli zlozonosc algorytmu to * O(N*N) * gdzie N - ilosc elementow listy (zlozonosc kwadratowa): * * * @param object $this */ public function bubblesort() { $temp = NULL; //zewn. petla - powtarzana tyle razy, ile jest elementow listy for ($y = 0; $y < $this->size(); $y++) { //wewn. petla - dla kazdej pary dokonuje porownania i zamienia miejscami elementy // $i oraz $i+1, jesli $i > $i+1 for ($i = 0; $i < $this->size()-1; $i++) { if ( $this->get($i) > $this->get($i+1) ) { $temp = $this->get($i); $this->set($i , $this->get($i+1)); $this->set($i+1 , $temp); }//if }//for }//for }//bubblesort() }// class Lista //test listy $lista = new Lista(); $lista->add(6); $lista->add(2); $lista->add(3); $lista->add(1); $lista->add(5); $lista->add(8); $lista->add(7); $lista->show(); $lista->bubblesort(); $lista->show(); ?>