Wyświetlenie wielowymiarowej tablicy w odpowiednim formacie

(array) Array

(

      [Internet] => Array

      (

            [1] => tworzenie stron

           [2] => blog

           [3] => serwis webdesign

           [4] => przeglądarka

          [5] => gra internetowa

          [6] => mieszanie kaszy

      )

      [Sport] => Array

      (

          [1] => strona hostingowa

      )

)

To jest tablica którą należy wyświetlić w takiej formie kolumn

INTERNET

  • tworzenie stron

  • blog

  • serwis we

-…

SPORT

  • strona hostingowa

i tak dalej… i tak dalej… Lecz jest jedno ale: należy je wyświetlać w trzech kolumnach a nie w jednej… proszę także zwrócić uwagę że tablica zaczyna sie od indexu 1 ( 0 => NULL)

Index’y zawsze zaczynamy od 0. Taki standard.

Narysuj w PAINT (lub wyjaśnij) co ma być wyświetlane w tych trzech kolumnach.

Podstawowe pytanie to: gdzie chcesz te kolumny wyświetlać? Na konsolę, do pliku, czy gdzie?

indexy w moim przypadku zaczynamy od 1 bo indexy to klucze główny z bazy danych…

dlatego ci napisałem że jako zero wstawić NULL

wyswietlenie bedzie w htmlu

schemat kolumn jest taki

159

2610

3711

4812

Dodane 25.12.2010 (So) 15:30

a język najlepiej PHP tzn ja będę w tym pisał ale jak ktoś pisze w innym to proszę o przykład bez użycia wbudowanych funkcji i bibliotek

Kolumny możesz uzyskać chociażby w CSS http://www.w3.org/TR/css3-multicol/ - tyle że webmasterką się nie param i nie wiem czy to jest zaimplementowane we wszystkich przeglądarkach.

Nie dość dokładnie opisałeś o co Ci chodzi: czy klucze w tablicy to “nagłówki” kolumn (czyli są 3 klucze) czy niekoniecznie. No i rozwiązanie dość mocno zależy od tego jak jest napisana strona która ma to wyświetlać.

http://codepad.org/PVTiQRcI

Wasacz nie wiem jak mam ci dziękować !!

Jakbyś mógł omówić co się tutaj dzieje a dokładnie te znaki \t \n bede jeszcze bardziej wdzięczny :slight_smile:

Dodane 25.12.2010 (So) 16:21

troche się pośpieszyłem, tyle to ja też zrobiłem, ja to musze mieć w trzech kolumnach a twój kod tego nie robi :confused:

http://codepad.org/RAW5iJBw

może być ??

Nie wiem o co dokładnie koledze chodzi (3 kolumnach. czyli każde obok siebie ,bo to będą 3 kolumny). czy to jest coś w stylu menu?

Jeżeli menu to pomysł Jim1961 nie jest zbyt dobry, ponieważ tabele służą do wyświetlania danych tabelarycznych. Trzeba byłoby wystylizować listy, na których oparł się Wasacz.

Pozdrawiam

Nie kapuje twojego schematu za pomocą cyferek ;]

Proponowałbym ci zrobić sobie 3 divy i to ich używać jako kolumn.

czego nie rozumiecie?

MAM np 10 indeksów i je trzeba wyświetlic w trzech kolumnach

159

2610

37

48

trzy kolumny licząc w dół

W przykładzie, który podałeś na początku nie masz 10 indeksów, masz 7 indeksów przy czym podzielonych na kategorie.

Podaj może jakiś większy przykład wraz z jego podziałem na kilka kolumn.

w przykładzie pierwszym są 2 indeksy, układać ma te pierwsze nazwy a pod nimi mają być podkategorie, liczba indeksów oczywiście jest przykładowa bo w rzeczywistości będzie to liczba “X”

Nie wiem dlaczego nie rozumiecie układu mamy X liczb i dzielimy je na trzy, kolumny numerujemy w dół więc jak mamy 9

1 4 7

2 5 8

3 6 9

dla 15 będzie

01 06 11

02 07 12

03 08 13

04 09 14

05 10 15

liczymy w dół a żeby w ostateczności powstały 3 kolumny, rozpiszę takze przyklad dla 10

01 05 09

02 06 10

03 07

04 08

Jak widać są dwa miejsca puste, można by je zniwelować biorąc z kolumny środkowej jedno miejsce i dać je do trzeciej wtedy pierwsza kolumna ma 4 elementy a pozostałe dwie kolumny mają 3

Ja już napisałem sobie funkcje w PHP która zrobi taki układ ale nie potrafię tego połączyć z HTMLem aby tak je generował, a kategorie i podkategorie mam w osobnych bazach, ogólnie już mi sie wszystko miesza a ślęczałem nad tym 3 dni. Największym problemem dla mnie było połączenie foreacha który rozbija tę tablicę i jednocześnie połączyć to z forami w tej funkcji, no i jeszcze trzeba dołożyć HTML

function wypisz($m)

{

   $do = ceil($m/3);

   for($x=0; $x<$do; $x++)

   {

      for($i=$x; $i<$m; $i+=$do)

      {

         echo $i;   

      }

      echo '
';

   }

}

dla niewtajemniczonych ceil() dzieli liczbę i zaokrągla do wyższej jedności, gdy wyjdzie 5.1 to zaokrągla do 6

Dodane 29.12.2010 (Śr) 16:06

A mówiąc jeszcze prościej chcę zrobić DRZEWO KATEGORII , takie coś jak np na allegro ale tam są dwie kolumny…

Przed forami dodaj sobie diva i zakończ go na końcu funkcji. Po każdym przejściu na początku dołóż sobie diva i na końcu go zakończ. Oczywiście div z float:left ;]

function wypisz($m)';   $do = ceil($m/3);   for($x=0; $x$do; $x++)   {     echo '';      for($i=$x; $i$m; $i+=$do)      {         echo $i;   }    echo '';   }''; [/code]

rozumiesz że tyle to i sam zrobię? Problem jest w tym że nie mogę zrobić całości, wstaw w to jeszcze ten foreach to ci szczerze podziękuję

pain3hp , w podanym przez ciebie przykładzie występują liczby:

1,2,3,4,5,6,1

Liczba 1 występuje dwa razy: raz w $tb[‘Internet’] oraz raz w $tb[‘Sport’]

Czyli chcesz mieć układ:

1, 4, 1

2, 5

3, 6

Dobrze rozumiem?

function wypisz($tb)

tablica jest dwuwymiarowa ja chcę “sortować”(układać) wg tego sposobu jedynie jej pierwszy wymiar czyli kategorie

Czyli dokładnie to samo tylko wywal wewnętrzny foreach, przy liczeniu ilości oraz przy wyświetleniu.

Skoro sprawdzasz tylko jeden wymiar to zliczyć ilość prościej $Count=count($tb);