Witam,
Potrzebuje wyciągnąć dane z pliku xml i zapisać w formacie tekstowym.
Dane które wyciągam chciałbym zapisać w formacie tabelki, ale z racji tego że plikiem wynikowym będą pliki tekstowe nie wchodzi w grę html.
Wiem jak dostać się do pliku xml i wyciągnąć z niego dane. Gorzej z zapisem w formie tabelki.
Stworzyłem tablicę dwuwymiarową w której podałem nagłówki kolumn oraz dane wyciągnięte z xml za pomocą simplexml. Następnie foreach wylistowłem to.
W jaki sposób zrobić, aby szerokość kolumn były dopasowane do zawartości?
Znaleźć maksymalne szerokości każdej kolumny (zakładam, że nie chcesz zawijania wierszy) i każdą wartość kolumny dopełniać spacjami do tejże szerokości. Dodatkowo przy wyświetlaniu używać czcionki monospace.
Musisz przejść każdy wiersz danych i zapisywać w odrębnej tablicy długości wartości kolumn (pod warunkiem, że aktualna wartość jest większa od poprzednio zapisanej).
Podobnie jak szukanie wartości maksymalnej w jednowymiarowej tablicy, ale tu wartości maksymalne są odrębnej dla każdej kolumny (musisz mieć więc tablicę na wartości maksymalne).
Zamiast 10-tki, musisz dopełnić X, gdzie X=maksimum_kolumny-aktualna_długość.
http://stackoverflow.com/questions/36026733/get-max-and-min-value-each-column-in-multdimensional-array-php
Dla każdej kolumny (przeglądając wszystkie wiersze) musisz znaleźć maksymalne długości. Link podałem wyżej.
Wyświetlając dane porównujesz długość aktualnej wartości z wartością maksymalną dla danej kolumny. Różnicą (X) dopełniasz ciąg.
W podanym przykładzie dopełniasz zawsze 17 razy "-".
Wartości maksymalne masz znaleźć przed wyświetlaniem danych. Używasz ich przy wyświetlaniu, do określenia długości dopełnienia.
To http://stackoverflow.com/questions/36026733/get-max-and-min-value-each-column-in-multdimensional-array-php musisz zrobić przed wyświetleniem danych.
Korzystasz z tych informacji przy wyświetlaniu danych (w str_pad). Jeśli obecnie masz kod wyświetlający dane, ale bez wyrównania, to jedyną różnicą będzie dodanie właśnie str_pad.
Najpierw szukasz maksimum, a potem (poza tym skryptem, na zewnątrz) pętla/pętle wyświetlając/e dane.
Przykład:
1.1: abc
1.2: cdef
1.3: ghi
2.1: jklmnop
2.2: r
2.3: st
Tablica maksimum:
1: 7
2: 4
3: 3
Wyświetlanie i dopełnienia:
1.1: 7-3=4
1.2: 4-4=0
1.3: 3-3=0
2.1: 7-7=0
2.2: 4-1=3
2.3: 3-2=1
Dopiero teraz zauważyłem w jakim ciekawym temacie uczestniczyłem...
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)