Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tablice
Forum PHP.pl > Forum > Przedszkole
naznaczony
Witam wszystkich, mam problem z tablicami, z którym nie mogę sobie poradzić i potrzebuje Waszej, eksperckiej pomocy wink.gif

Chodzi o to, że próbuje wgrać sobie plik tekstowy, o takiej strukturze:

TYTUL1:ELEMENT1,ELEMENT2,ELEMENT3
TYTUL2:ELEMENT1,ELEMENT2,ELEMENT3
itd.

  1. $plik = file($nazwa);
  2. $ilosc = count($plik);
  3.  
  4. for($i = 0; $i < $ilosc; $i++)
  5. {
  6. $this->tytuly = $plik[$i];
  7. $wTytuly = explode(":", $this->tytuly);
  8. echo "<h4>$wTytuly[0]</h4>";
  9.  
  10. $this->dane = $plik[$i];
  11. $wDane = explode(",", $this->dane);
  12. foreach($wDane as $d)
  13. echo "<ul>$d</ul>";
  14. }

Tytuły mi się wgrywają dobrze, gorzej z danymi, gdyż przy powyższym zapisie otrzymuje coś takiego:
TYTUL1
TYTUL1:ELEMENT1
ELEMENT2
ELEMENT3
TYTUL2
TYTUL2:ELEMENT1
ELEMENT2
ELEMENT3



Gdyby ktoś mi podpowiedział jak się pozbyć tych dodatkowych tytułów już w elementach, to byłbym wdzięczny!
gorden
$this->dane i $this->tytuly deklarujesz w ten sam sposób.
pomiń linię 10, a drugim argumentem w explode $wDane niech będzie $wTytuly[1].
naznaczony
@gorden Dzięki - pomogło, teraz muszę zrobić z tego dodatkową funkcję, która będzie mi w zależności od podanej wartości wyświetlała tytuły + elementy i tak zaczynam też mieć z tym problem.

Jest jakaś możliwość aby przypisać moje elementy i tytuły pod taką tablice:
Tytul1:
dane[0][0]=Element1
dane[0][1]=Element2

Tytul2:
dane[1][0]=Element1
dane[1][1]=Element2
dane[1][2]=Element3

I tak dalej, bo w drugiej części tego ćwiczenia, muszę zorganizować to w listę, która będzie mi wyświetlała te poszczególne elementy.
Albaniusz
Zrobił bym to w ten sposób:

  1. // lista wnikowa
  2. $lista = array();
  3.  
  4. $plik = file($nazwa);
  5. $ilosc = count($plik);
  6.  
  7. // przetworzenie danych z pliku
  8. for($i = 0; $i < $ilosc; $i++) {
  9. $dataRaw = explode(':', $plik[$i]);
  10. $lista[$dataRaw[0]] = explode(',', $dataRaw[1]);
  11. }
  12.  
  13. // odczyt danych z listy
  14. foreach ($lista as $tytul => $elementy) {
  15. echo "<h4>$tytul</h4>";
  16. foreach($elementy as $d)
  17. echo "<ul>$d</ul>";
  18. }
naznaczony
@Albaniusz dzięki, właśnie o to chodziło - dorobiłem do tego nową klasę wyświetlającą i działa tak jak chciałem.

Pozdrawiam.
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.