Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi
.radex
post
Post #2





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

Posty w temacie


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: 10.10.2025 - 02:38