![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam sobie plik z kilkoma wierszami, odczytuje z niego dane przez funkcje file(wierszami) rozbijając je po separatorze funkcją explode.
Każdy wiersz powinien być nową tablicą? zwłaszcza, że potem muszę każdy wiersz wyświetlić na stronie po kolei. (do odpowiednich bloków html) Wiersze pliku;
Jak posortować z tych dwóch tablic po cenie skoro tablica zawiera stringi, inty, png? Po prostu sortuję i na stronie mają się wyświetlać produkty w zależności od wielkości ceny Ten post edytował Boshi 21.04.2015, 15:02:23 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak: po wczytaniu przez file za pomocą array_map rozbiłbym każdy wiersz na podtablicę, a potem za pomoca usort dowolnie sortował (czyli np. po cenie). I dopiero posortowaną dawał do wyświetlania w pętli.
Albo jakimś iteratorem bym wczytywał linia po linii i od razu rozbijał każdą z nich na tablicę i wrzucał do tablicy wielowymiarowej. Ten post edytował kreatiff 21.04.2015, 15:06:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przykład? nie bardzo mogę to w pętli wypisać wszystko bo jak pisałem wyświetlane jest do odpowiednich bloków wszystko (bootstrapa)
np |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zatem cały taki blok wędruje do pętli.
Jak już będziesz miał dowolnie stworzoną tablicę wielowymiarową, np.:
To tablicę taką sobie sortujesz po dowolnym polu wspomnianą funkcją, a następnie w kodzie html dajesz: itp. Ten post edytował kreatiff 21.04.2015, 15:40:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czekaj, czekaj, jakaś logika w tym jest
![]() Teraz jeszcze raz, jak to podzielić na wielowymiarową tablicę? array_map? w sensie najpierw rozbić każdy wiersz na osobną tablicę funkcją explode i potem wszystkie tablice wrzucić do array_map? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
array_map to był przykład działania na gotowej tablicy, którą stworzy file. Ta funkcja sama w sobie nic nie tworzy, ale umozliwia edycję elementów istniejącej tablicy. Nie trzeba z niej korzystać, ale można, gdy cały plik wczytamy do pamięci od razu.
Możesz wykorzystać np. fgetcsv (1 przykład ze strony manuala), czy jakiś Iterator dostępny po stworzeniu obiektu klasy SplFileObject i tworzyć taką wielowymiarową tablicę już na etapie wczytywania pliku linia po linii (w tym wypadku cały plik nie wędruje do pamięci od razu - takie rozwiązanie będzie prawdopodobnie mnie pamięciożerne). Po prostu po wczytaniu linii następuje jej explode po "|" i dodanie tej podtablicy do jakiejś większej, wielowymiarowej. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
A coś takiego z wykorzystaniem array_chunk? tablica wielowymiarowa z kluczami w każdej pod tablicy- czyli tyle ile ma każdy wiersz.
$wynikowa=array_merge_recursive($tablicaProduktow,$tablicaProduktowPizze,$tabliceproduktowKurczaki); $rows = array_chunk($wynikowa, 7); Wynik: Array ( [0] => Array ( [0] => hamburgery [1] => McDonald [2] => Hamburger Hebrajski [3] => Hamburger hebrajski jest jednym z najbardziej napakowanych fastfood�w na �wiecie, spr�buj a si� przekonasz [4] => 10 [5] => img/burger_sandwich_PNG413.png [6] => img/mcdonald-s-psd-457848.png ) [1] => Array ( [0] => Pizze [1] => PizzaHut [2] => Pizza Watyka�ska [3] => Pizza ta zosta�a po�wi�cona przez samego papie�a-spr�buj je�li masz odwag� [4] => 35 [5] => img/Pizza_margherita.png [6] => img/PizzaHut.png ) [2] => Array ( [0] => Kurczaki [1] => KFC [2] => Kurczak z warzywami [3] => Kurczam z warzywami to jedyny w Europie kurczak zawieraj�cy niespotykane ilo�ci oraz rodzaje owoc�w- czy odwa�ysz si� i zaryzykujesz? [4] => 20 [5] => img/kurczak-z-rozna.png [6] => img/kfc-logo-2.png ) ) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
To, które funkcje wykorzystasz to już kwestia optymalizacyjna. Wynik Twoich działań wygląda jak to co chcemy osiągnąć, więc jest w porządku.
Po prostu potem w kodzie zamiast odwołań w pętli do $tablica['produkt'], znajdzie się $tablica[0], itd. Będzie to działało dokładnie tak samo, a różnica to po prostu mniej czytelny zapis. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak przetestowałem, faktycznie działa. A teraz jak to posortować? wg ceny?
coś takiego ?
Dobra kreatiff twoja pomoc okazała się nieoceniona, funkcja sortująca działa świetnie ![]() Ten post edytował Boshi 21.04.2015, 16:49:17 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 18:46 |