Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Tablice wielowymiarowe, wyciąganie danych w odpowiedniej kolejności
gamata
post 20.04.2010, 11:39:26
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.09.2007

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


Witam
kombinuje kombinuje i jakoś nie mogę sam sobie z tym poradzić.

Mam sobie taką tablice:

  1. (
  2. [0] => Array
  3. (
  4. [0] => V1
  5. [1] => V2
  6. )
  7.  
  8. [1] => Array
  9. (
  10. [0] => V3
  11. [1] => V4
  12. )
  13.  
  14. [2] => Array
  15. (
  16. [0] => V5
  17. [1] => V6
  18. )
  19.  
  20. [3] => Array
  21. (
  22. [0] => V7
  23. [1] => V8
  24. )
  25. )
  26.  


Chciałbym wyciągnąć dane i je zaprezentować w takiej postaci

V1 | V3 | V5 | V7
V2 | V4 | V6 | V8

  1. foreach ($tablicaPozycji as $klucz => $wartosc ) {
  2. foreach ($wartosc as $klucz2 => $wartosc2 ) {
  3. for($i=0; $i<=count($wartosc); $i++ ) {
  4. echo $wartosc[$i];
  5. }
  6. }
  7. }


No i wszystko ładnie wyciąga, ale sformatować to do postaci div lub tabel o równym rozkładzie poszczególnych wartości
Go to the top of the page
+Quote Post
doman78
post 20.04.2010, 12:42:33
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 6.04.2008
Skąd: Warszawa

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


Witam,

Jeżeli chodzi tylko o wyświetlenie sformatowane danych to może dobrym rozwiązaniem będzie:

  1. foreach ($tablicaPozycji as $klucz => $wartosc)
  2. {
  3. foreach ($wartosc as $klucz2 => $wartosc2 )
  4. {
  5. if($klucz2 % 2 == 0)
  6. {
  7. $row1 .= '<td>'.$wartosc2.'</td>';
  8. }
  9. else
  10. {
  11. $row2 .= '<td>'.$wartosc2.'</td>';
  12. }
  13.  
  14. }
  15. }


przy czym odpowiedni format dać do zmiennej $row1, $row2 etc.

Pozdrawiam,
Dominik
Go to the top of the page
+Quote Post
alegorn
post 20.04.2010, 12:52:23
Post #3





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


jeśli masz DOKŁADNIE taką strukturę - możesz zrezygnować z wewnetrznej petli.
ja bym zrobil cos takiego:

  1. foreach($tablica as $row){
  2. $a[] = $row[0];
  3. $b[] = $row[1];
  4. }
  5.  
  6. echo join('|', $a);
  7. echo join('|', $b);


powinno zadzialac..

druga petla byla by ci potrzebna gdybys mial dynamiczna ilosc elementow w zagniezdzonej tablicy.
Go to the top of the page
+Quote Post
doman78
post 20.04.2010, 13:12:55
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 6.04.2008
Skąd: Warszawa

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


Masz rację - zasugerowałem się przykładem twórcy wątku.

Pozdrawiam,
Dominik
Go to the top of the page
+Quote Post
gamata
post 20.04.2010, 16:13:50
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.09.2007

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


Właśnie o to chodzi, że ilość może być dynamiczna. Gdyby była stała byłoby prosto smile.gif

Tablica jest tworzona z formularza i następnie przekazywana. Stałą jest liczba 4 tablic, natomiast zmienna może być ilość elementów tablicy każdej z tablic.
Wynikiem przekazywanych elementów do tablicy może być ułożenie:

V1 | V3 | V5 | V7
V2 | V4 | V6 | V8
Vn | Vn | Vn |Vn
Vn | itd ....
Go to the top of the page
+Quote Post
doman78
post 20.04.2010, 21:43:58
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 6.04.2008
Skąd: Warszawa

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


To może po prostu przerób swoją tablicę na nową:

  1.  
  2. $nowaTablica = array();
  3.  
  4. for($i = 0 ; $i < count($tablicaPozycji); $i++)
  5. {
  6. for($j = 0; $j < count($tablicaPozycji); $j++)
  7. {
  8. $nowaTablica[$j][$i] = $tablicaPozycji[$i][$j];
  9. }
  10. }
  11.  


Go to the top of the page
+Quote Post
gamata
post 21.04.2010, 15:58:21
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.09.2007

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


I o to chodziło - z grubsza smile.gif

po lekkim przerobieniu z zachowaniem pomysłu stworzenia tablicy, wszystko działa jak trzeba.

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 Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:43