POWRÓT NA STRONĘ SZKOŁY

Tablice wielowymiarowe

Najczęściej stosuje się tablice dwuwymiarowe, przykłady pokazywaliśmy na poprzednich ćwiczeniach. Taka tablica idealnie nadaje się do przechowania danych tabelarycznych. Mam tu na myśli zarówno tabele HTML (wykonywaliśmy takie ćwiczenie), jak również tabele baz danych (obsługi MySQL z poziomu PHP, będziemy się uczyć). Każdy rekord tabeli jest przecież tablicą pól, natomiast cała tabela jest tablicą rekordów.

Jest wiele zastosowań tablic o wymiarze większym jak 2. Na tych zajęciach wykonamy ćwiczenie pokazujące tablicę 5-wymiarową.

Ćwiczenie 2_6_0_1. Tworzenie listy wielopoziomej za pomocą PHP. Zastosowanie tablicy 5-wymiarowej

Kod PHP tworzący tablicę należy umieścić w oddzielnym pliku lista.php:

<?php
  function lista_dane()
  {
    for ($i=1;$i<=2;$i++)
    for ($j=1;$j<=2;$j++)
    for ($k=1;$k<=2;$k++)
    for ($l=1;$l<=2;$l++)
    for ($m=1;$m<=2;$m++)
    $lista[$i][$j][$k][$l][$m]='punkt_'.$i.'_'.$j.'_'.$k.'_'.$l.'_'.$m;
    return $lista;
  }
  
  function lista_html($lista)
  {
    $i=1;
    echo '<ol>'."\n";
    while (isset($lista[$i]))
    {
      echo '<li>'.$lista[$i][1][1][1][1]."\n";
        $j=1;
        echo '<ol>'."\n";
        while (isset($lista[$i][$j]))
        {
          echo '<li>'.$lista[$i][$j][1][1][1]."\n";
            $k=1;
            echo '<ol>'."\n";
            while (isset($lista[$i][$j][$k]))
            {
              echo '<li>'.$lista[$i][$j][$k][1][1]."\n";
                $l=1;
                echo '<ol>'."\n";
                while (isset($lista[$i][$j][$k][$l]))
                {
                  echo '<li>'.$lista[$i][$j][$k][$l][1]."\n";
                    $m=1;
                    echo '<ol>'."\n";
                    while (isset($lista[$i][$j][$k][$l][$m]))
                    {
                      echo '<li>'.$lista[$i][$j][$k][$l][$m]."\n";
                      echo'</li>'."\n";
                      $m++;
                    }
                    echo '</ol>'."\n";    
                  echo'</li>'."\n";
                  $l++;
                }
                echo '</ol>'."\n";    
              echo'</li>'."\n";
              $k++;
            }
            echo '</ol>'."\n";    
          echo'</li>'."\n";
          $j++;
        }
        echo '</ol>'."\n";    
      echo'</li>'."\n";
      $i++;
    }
    echo '</ol>'."\n";    
  }
?>

Zasada jest prosta. Każdy punkt ma dwa podpunkty, z których każdy ma swoje dwa podpunkty, z których każdy ma swoje dwa podpunkty...tak do poziomu piątego. To ćwiczenie pokazuje kolejne wymiary tablicy.

Zobacz, jaki prosty jest kod skryptu wyświetlającego listę. Jest to możliwe, dzięki umieszczeniu większości kodu w oddzielnym pliku.

<body>
  <?php
    require_once('lista.php');
    lista_html(lista_dane());
  ?>
</body>

Zwróć uwagę, że argumentem funkcji lista_html(), jest funkcja lista_dane().


Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: