Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Tablice
naznaczony
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.01.2012

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


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!

Ten post edytował naznaczony 26.01.2012, 00:14:18
Go to the top of the page
+Quote Post
gorden
post
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


$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].
Go to the top of the page
+Quote Post
naznaczony
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.01.2012

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


@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.
Go to the top of the page
+Quote Post
Albaniusz
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 1
Dołączył: 24.01.2012

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


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


Ten post edytował Albaniusz 26.01.2012, 10:18:47
Go to the top of the page
+Quote Post
naznaczony
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.01.2012

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


@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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 22:00