Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tablice wielowymiarowe, wyciąganie danych w odpowiedniej kolejności
Forum PHP.pl > Forum > PHP
gamata
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
doman78
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
alegorn
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.
doman78
Masz rację - zasugerowałem się przykładem twórcy wątku.

Pozdrawiam,
Dominik
gamata
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 ....
doman78
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.  


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

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

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.