Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wyświetleniem tablicy
Forum PHP.pl > Forum > PHP
zonta88
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.
nospor
No skoro to też jest tablica, to wypadałoby użyć FOREACH by wyswietlić jej elementy...
Szymciosek
Musisz zagnieździć pętle.
Skoro $licz wyświetla Ci jako array, to musisz zrobić:

  1. foreach (...)
  2. {
  3. foreach (...)
  4. {
  5.  
  6. }
  7. }
zonta88
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
Szymciosek
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
PrinceOfPersia
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?


viking
  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);
zonta88
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.
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.