![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Hello hello, tu znowu Ja wasz phpamator
![]() Potrzebuję pomocy w takiej kwestii. Mam tablicę w której mam np 20 wierszy. W tych wierszach występuje w jednej z kolumn ta sama wartość i .... część innych wartości jest inna. Chciałbym wyciągać kolejno tylko te wiersze w których występuje np "ala ma kota" po czym utworzoną tablicę przepuścić przez loop i poukładać tak aby utworzyć jeden wiersz ale w kolumnach tam gdzie wartości są rózne budowały się kolejne tablice. Chyba zamieszałem ... przykład: CSV: ID, Nazwa, ilość, dodatek1, dodatek2, dodatek3 1,Nazwa1,1,czeresnia,banan,ogorek 2,Nazwa2,10,wisnia,pomidor,ogoirek 3,Nazwa1,15,jablko,gruszka,por 4,Nazwa2,10,wisnia,pomidor,ogoirek 5,Nazwa2,10,wisnia,pomidor,ogoirek (wciągam i przerabiam do tablicy asocjacyjnej - z headerami) I teraz w prosty sposób chciałbym wyciągnąc najpierw Nazwa1 i pozbierać dp kupy dadatki następnie Nazwa 2 i to samo tyle, że nie bardzo wiem jak się do tego zabrać .... Podpowiedzcie proszę .... pomyślałem, że mógłbym w pierwszej kolejności utworzyć listę "nazw" i następnie kolejno wybierać te wiersze w których nazwa = nazwa1 i zbierać dane następnie nazwa2 i zbierać czy to głupi pomysł ? Ten post edytował phpamator 8.02.2021, 22:02:56 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Zamieszałeś.
Ale jeżeli masz to jako CSV, to nie lepiej od razu zamienić kod na tablicę, a następnie iterować po niej, wyszukując w kluczu [1] nazwę "Ala ma kota"? Dzięki temu, szybciej i efektywniej wyświetlisz oczekiwaną treść niż szukając linia po linii, a potem zamieniając na tablicę. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
trochę zamieszałem.
Dlatego pomyślałem, że najlepiej byłoby w pierwszej kolejności utworzyć listę nazw i następnie lecieć kolejno przez tablicę wybierając wiersze w których nazwa = wartość z listy .... Zacząłem tak:
Ten post edytował phpamator 8.02.2021, 22:16:14 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 800 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz wrzucać nazwy jako klucz tablicy, a reszty kolumn jako wartości?
Jeśli klucz nie istnieje, to tworzysz element, jeśli istnieje, to kolumny dołączasz. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 22 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze zrozumiałem to spróbuj coś takiego (później przeczytaj moją uwagę na dole)
Tego rozwiązania nie wolno wykorzystywać dla dużych plików CSV ponieważ mocno będzie zżerać pamięć komputera. W takich przypadkach radzę kilka razy przejść po pliku przy pomocy "fgetcsv" |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Czegoś się tutaj nie dopatrzyłem chyba, var_dump powinien coś wyrzucić cy to tylko przykład "niedziałający"
![]() ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 22 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przecież var_dump się wykonuje. Link do sandboxa poniżej.
http://sandbox.onlinephpfunctions.com/code...71375852e5768f3 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 10:18 |