Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kto pomoże rozszefrować kod ?
--slawek3422--
post
Post #1





Goście







Witam, mam problem ze zrozumieniem kodu sad.gif pomoże ktoś ?

  1. <?php
  2. $liczby = array();
  3. $wynik_liczba = 100;
  4. while (count($liczby) < 6) {
  5.  $l = rand(1,$wynik_liczba);
  6.  if (array_search($l, $liczby) === false) {
  7. array_push($liczby, $l);
  8. }
  9.  }
  10.  
  11. foreach($liczby as $liczba) {
  12.  $los .= $liczba.",";
  13.  }
  14.  
  15. $string = substr($los, 0, -1);
  16. ?>


Tyle co wiem to to że wynikiem działania tego kodu jest 6 losowych liczb oddzielonych przecinkami, ale nie wiem jak to działa sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


1. tworzymy tablice w ktorej bedą przechowywane liczby ($liczby = array()winksmiley.jpg
2. ustawiamy założenie że maksymalna liczba wygenerowana nie będzie przekraczać 100 - wynik_liczba
3. rozpoczynamy generowanie liczby (początek pętli)
4. sprawdzamy czy rozmiar tablicy przechowującej wygenerowane liczby jest mniejszy od 6 (count($liczby) < 6)
5. jeśli rozmiar tablicy przechowującej wygenerowane liczby jest większy lub równy 6 to skocz do pkt 9.
6. losujemy liczbę losową z przedziału 1, wynik_liczba
7. sprawdzamy czy wygenerowana liczba znajduje sie już w tablicy wynikowej (array_search)
7a. jesli liczba nie znajduje się w tabeli wynikowej to dodajemy ją do tablicy (array_push)
8. skocz do 4.
9. pobierz bierzący element na który wskazuje iterator z tablicy wynikowej
10. jesli iterator wskazuje koniec tablicy skocz do 12.
11. do łańcucha dopisz na koniec wygenerowaną liczbę i dodaj przecinek zaraz po nim
12. wytnij ostatni znak z wygenerowanego łańcucha znaków i wynik zapisz dotego samego łańcucha


Algorytm opisany powyżej to to co chciałeś, ale lepiej sam sobie to przeanalizuj bo tak to nie wiem czy coś z tego wyniesiesz


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:17