Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z wyświetleniem tablicy
zonta88
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.04.2013

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


Witam

Napisałem prosty programik.
Funkcja musi zwrócić dwie tablice, a później muszę je wyświetlić na ekranie.

  1. class test
  2. {
  3. public function generowanie()
  4. {
  5. $tabela2=array();
  6. $tabela3=array();
  7. for ($i=0; $i<100; $i++)
  8. {
  9. $liczba=rand(0,1000);
  10. if ($liczba % 2 == 0)
  11. {
  12. array_push($tabela2, $liczba);
  13. }
  14. if ($liczba % 2 != 0)
  15. {
  16. array_push($tabela3, $liczba);
  17. }
  18. }
  19. return array($tabela2,$tabela3);
  20. }
  21. }

Powyższa funkcja generuje "losową" liczbę i ładuje do odpowiedniej tablicy w zależności od tego czy ta licza jest pażysta czy też nie. Na końcu zwracam dwie tablice.

  1. <h1>Liczby:</h1>
  2.  
  3. <ul>
  4. <? foreach ($liczba as $licz): ?>
  5. <li>
  6. <strong><?= $licz ?></strong>
  7. </li>
  8. <? endforeach; ?>
  9. </ul>

Tutaj próbuję wyświetlić tablicę, ale efektem w takim przypadku jest wypisanie "Array" na ekranie.
Jeśli w strongu, zamiat $licz wstawię licz[0] - wtedy pojawiają się po jednej liczbie z każdej tablicy.
Pytnie jak wyświetlić obydwie tablice w całości?

Proszę o pomoc i pozdrawiam.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No skoro to też jest tablica, to wypadałoby użyć FOREACH by wyswietlić jej elementy...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Musisz zagnieździć pętle.
Skoro $licz wyświetla Ci jako array, to musisz zrobić:

  1. foreach (...)
  2. {
  3. foreach (...)
  4. {
  5.  
  6. }
  7. }
Go to the top of the page
+Quote Post
zonta88
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.04.2013

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


Dzięki pomogło smile.gif
Wybaczcie jestem początkujący.

Pytanie z innej beczki.
Macie pomysł na to w jaki sposób pomieszać wiersze w pliku .txt?
Jeden wiersz składa się z 5 kolumn, w których są maksymalnie 3-cyfrowe liczby, oddzielone od siebie spacją.
Ewentualnie jeśli coś takiego trudno zrobić w php, moglibyście mnie ukierunkować w czym to napisać?

Pozdrawiam
Go to the top of the page
+Quote Post
Szymciosek
post
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Jeżeli z pliku pobierasz wszystkie wiersze i tak na początku, to wrzuć je do array i http://php.net/manual/pl/function.shuffle.php
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #6





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


abstrahując od wyświetlania tablicy, a spoglądając na samą jakość kodu:

  1. if ($liczba % 2 == 0)
  2. {
  3. array_push($tabela2, $liczba);
  4. }
  5. if ($liczba % 2 != 0)
  6. {
  7. array_push($tabela3, $liczba);
  8. }


czemu nie skorzystasz z instrukcji else?




--------------------
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. $tabela2 = array();
  2. $tabela3 = array();
  3.  
  4. $liczba = 1;
  5. $tab = ($liczba % 2 == 0) ? 'tabela2' : 'tabela3';
  6. array_push($$tab, $liczba);
  7.  
  8. var_dump($tabela3);


--------------------
Go to the top of the page
+Quote Post
zonta88
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.04.2013

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


Cytat(PrinceOfPersia @ 30.04.2013, 13:13:13 ) *
abstrahując od wyświetlania tablicy, a spoglądając na samą jakość kodu:

  1. if ($liczba % 2 == 0)
  2. {
  3. array_push($tabela2, $liczba);
  4. }
  5. if ($liczba % 2 != 0)
  6. {
  7. array_push($tabela3, $liczba);
  8. }


czemu nie skorzystasz z instrukcji else?


Masz 100% racji, mógłbym tak zrobić i nawet powinienem smile.gif dzięki za uwagę.
Viking nawet nie wiem co tam napisałeś smile.gif jak narazie trochę za skomplikowany dla mnie sposób.

Ten post edytował zonta88 30.04.2013, 12:39:53
Go to the top of the page
+Quote Post
viking
post
Post #9





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Pierwsze to http://php.net/manual/en/language.operator...parison.ternary
Drugie http://php.net/manual/en/language.variables.variable.php

Podstawy PHP smile.gif


--------------------
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 - 16:02