Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [funkcja] Generator list zawartości tablic
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
.radex
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
kwiateusz
kocham globale happy.gif
oświecisz nas co ma zawierać zmienna $szag? bo jednakowoż zgadnąć mi sie nie chce jak ją tak z kosmosu bierzesz co_jest.gif

a wcięciami w kodzie php tez bysmy nie pogardzili
phpion
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 co_jest.gif

smile.gif a ja wiem, ja wiem! smile.gif 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.
.radex
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 smile.gif

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

EDIT: Zamiast global'a można dać static winksmiley.jpg Zapomniałem że w php jest też to "códo" znane z np. c++
php programmer
hmm.. a czym się ta funkcja różni od print_r" title="Zobacz w manualu PHP" target="_manual ?
NetJaro
Praktycznie niczym, z tego co widzę smile.gif Ale ładniej wygląda winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.