Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlenie tablicy...
Forum PHP.pl > Forum > Przedszkole
artvip
Znowu muszę prosić o pomoc..

kawałek kodu:
  1. $r = array_merge_recursive($array1, $array2);
  2.  
  3. foreach ($r as $user => $dane) {
  4.  
  5. foreach ($dane as $key => $value2) {
  6.  
  7. echo "<br>";
  8. echo $user;
  9. echo "<tr> <td>";
  10. echo $key;
  11. echo "<tr> <td>";
  12. print_r($value2);
  13. }
  14. }


Połączyłem dwie tablice. Dokładniej tak to wygląda:
  1. Array1:
  2. [user1] => Array
  3. (
  4. [nazwa1] => 0
  5. [nazwa2] => 3
  6. [nazwa3] => 0
  7. )
  8. Array2:
  9. [user1] => Array
  10. (
  11. [nazwa2] => 3
  12. )
  13.  
  14. $r = array_merge_recursive($array1, $array2);
  15. [user1] => Array
  16. (
  17. [nazwa1] => 0
  18. [nazwa2] => Array
  19. (
  20. [0] => 3
  21. [1] => 3
  22. )
  23.  
  24. [nazwa3] => 0
  25. )

Wywołanie kodu powyżej daje mi taki wynik:
user1 nazwa1 0
user1 nazwa2 Array ( [0] => 3 [1] => 3 ) - ten array wyrzucam print_r($value2);
user1 nazwa3 0
Prośba o pomoc.. jak to przerobić foreach'a albo wyrzucić dane w postaci echo tak abym mógł je sobie w tabelę wrzucić.. Dodanie kolejnej pętli wyrzuca mi błąd i nie pokazuje rekordów które są w array1 a nie ma w array2 i odwrotnie.
Dziękuję.
organista18
W ten sposób tabelki nie zrobisz...
  1. echo "<br>";
  2. echo $user;
  3. echo "<tr> <td>";
  4. echo $key;
  5. echo "<tr> <td>";
  6. print_r($value2);


to powinno raczej wyglądać tak:

  1.  
  2. //przed pętlą dajesz table:
  3. <table>
  4. foreach ($r as $user => $dane) {
  5.  
  6. echo "<tr>";
  7. echo $user;
  8. foreach ($dane as $key => $value2) {
  9.  
  10. //tutaj komórki:
  11. echo "<td>"
  12. echo $key;
  13. print_r($value2);
  14. echo "</td>";
  15. }
  16. echo "</tr">
  17. }


Przydałoby się też, żebyś napisał, jak miałaby wyglądać ta tabela... bo teraz to improwizowałem...

więcej info znajdziesz tutaj: http://www.kurshtml.boo.pl/html/struktura_tabeli,tabele.html
artvip
Tak zrobiłem tabele:

  1. echo "<center>";
  2. echo "<TABLE WIDTH=650 HEIGHT=70 CELLSPACING=1 CELLPADDING=1 BORDER=1 BGCOLOR=silver >";
  3. echo "<td>";
  4. print("<b>1:</b>");
  5. echo "<td>";
  6. print("<b>2:</b>");
  7. echo "<td>";
  8. print("<b>3:</b>");
  9. echo "</td>\n";
  10. echo "</center>";
  11.  
  12. foreach ($r as $user => $dane) {
  13.  
  14. foreach ($dane as $key => $value3) {
  15.  
  16. echo "<tr>";
  17. echo "<td>";
  18. echo $user;
  19. echo "</td>";
  20. echo "<td>";
  21. echo $key;
  22. echo "</td>";
  23. echo "<td>";
  24. echo $value3;
  25. echo "</td>";
  26. echo "</tr>";
  27.  
  28. }
  29. }

i w sumie jest OK. Prawie oczekiwany efekt mam ale.. Układ danych w tabeli jest podobny z tablic które pokazałem wyżej.

Dane z mojej tablicy na tym konkretnym przypadku wyświetlane są tak:
  1. [user1] => Array
  2. (
  3. [nazwa1] => Array
  4. (
  5. [0] => 0
  6. )
  7.  
  8. [nazwa2] => Array
  9. (
  10. [0] => 3
  11. [1] => 3
  12. )
  13.  
  14. [nazwa3] => Array
  15. (
  16. [0] => 0
  17. )
  18.  
  19. )

W tabeli wygląda to tak:
user1, nazwa1, 0
user1, nazwa2, 3
user1, nazwa2, 3
user1, nazwa3, 0

a chciałbym żeby było tak:
user1, 0, nazwa1, 0
user1, 3, nazwa2, 3
user1, 0, nazwa3, 0

Czyli bez powielenia nazwa2 i pokazanie wartości 3 po lewej i po prawej stronie żeby można było porównać.
Znacznie czytelniejsze jest wtedy.

Czy przy takiej budowie tablicy jest to wykonalne? Czy jak w pętli wyrzucam dane to mam wpływ na uzupełnianie
tabeli z tablicy array?

dzięki






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.