Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [funkcja] Generator list zawartości tablic, Funkcja rekurencyjna
.radex
post
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Funkcję tą napisałem jako test funkcji rekurencyjnej, ponieważ wcześniej nie używałem w praktyce tej techniki, choć znałem ją...
  1. <?php
  2. function generuj($t){
  3. global $szag;
  4. $szag++;
  5. $brlb=1;
  6. for($i=0;$i<count($t);$i++){
  7. if(is_array($t[$i])){
  8. $t2 .= generuj($t[$i]);
  9. }else{
  10. $t2 .= (($brlb==0) ? '<br>' : '').$t[$i];
  11. }
  12. $brlb=0;
  13. }
  14.  
  15. $dex = dechex(255-($szag*4));
  16. $dex2 = dechex((255-($szag*4))/50*49);
  17.  
  18. $sbgc = 'style="background-color:#'.$dex.$dex.$dex.';border:1px solid '.$dex2.$dex2.$dex2.'"';
  19.  
  20. return '<blockquote '.$sbgc.'><strong>Stopien zagniezdzenia:</strong> <em>'.
  21. ($szag--).'</em><br><br>'.$t2.
  22. '</blockquote>';
  23.  
  24. }
  25. ?>


Przykład użycia:

  1. <style type="text/css">
  2. blockquote{
  3. margin-left: 30px;
  4. padding: 0
  5. }
  6. </head>
  7. <?php
  8.  
  9. /* Tutaj funkcja */
  10. $tablica = array(
  11. '1111',
  12. array(
  13. '1111',
  14. array(
  15. '1111',
  16. array(
  17. '1111',
  18. array(
  19. '1111',
  20. array(
  21. '1111',
  22. array(
  23. '1111',
  24. array(
  25. '1111',
  26. array(
  27. '1111',
  28. ),
  29. ),
  30. ),
  31. ),
  32. ),
  33. ),
  34. ),
  35. )
  36. );
  37.  
  38. echo generuj($tablica);
  39.  
  40. ?>
  41. </body>
  42. </html>



Zadaniem funkcji jest stworzenie listy zawartości tablic wielowymiarowych. Czym większy stopień zagnieżdżenia tym ciemniejszy kolor (kolor = 255 - stopień_zagnieżdżenia*4)

Przykład online: http://radex.byethost18.com/Fnc/xdlist.php

Ten post edytował radex_p 9.09.2007, 18:04:01
Go to the top of the page
+Quote Post
kwiateusz
post
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




kocham globale (IMG:http://forum.php.pl/style_emoticons/default/happy.gif)
oświecisz nas co ma zawierać zmienna $szag? bo jednakowoż zgadnąć mi sie nie chce jak ją tak z kosmosu bierzesz (IMG:http://forum.php.pl/style_emoticons/default/co_jest.gif)

a wcięciami w kodzie php tez bysmy nie pogardzili
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(kwiateusz @ 9.09.2007, 03:28:41 ) *
oświecisz nas co ma zawierać zmienna $szag? bo jednakowoż zgadnąć mi sie nie chce jak ją tak z kosmosu bierzesz (IMG:http://forum.php.pl/style_emoticons/default/co_jest.gif)

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a ja wiem, ja wiem! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) $szag to stopień zagnieżdżenia!! Tylko, że sugerowałbym go przekazywać jako parametr funkcji, a nie poprzez global'a. W sumie funkcja napisana niechlujnie, jedyne co mi się podoba to pomysł z kolorystyką aczkolwiek to tylko bajerek.
Go to the top of the page
+Quote Post
.radex
post
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


tak, racja. to stopień zagnieżdżenia. Rzeczywiście dobry pomysł aby dać jako parametr funkcji, ale nie będę raczej przerabiał, bo jeśli użyje użytkownik tej nazwy przed lub po wykonaniu funkcji to się nic nie stanie;)

EDIT: Wcięcia? Już się robi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

EDIT: Przykład online: http://radex.byethost18.com/Fnc/xdlist.php !

EDIT: Zamiast global'a można dać static (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Zapomniałem że w php jest też to "códo" znane z np. c++

Ten post edytował radex_p 9.09.2007, 18:04:16
Go to the top of the page
+Quote Post
php programmer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


hmm.. a czym się ta funkcja różni od print_r" title="Zobacz w manualu PHP" target="_manual ?
Go to the top of the page
+Quote Post
NetJaro
post
Post #6





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Praktycznie niczym, z tego co widzę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale ładniej wygląda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:26