![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Jak wyszukać w tablicy wielowymiarowej najdłuższe stringi? I w indeksach i wartościach. Czyli mam np. taką tablicę:
Czyli powinienem otrzymać: 2016-10-18 08:38:18 2016-10-18 08:39:12 a tu jeszcze jeden string I teraz chcę wyszukać w tablicy największe wartości dla każdego indeksu. Z bazy danych nie ma problemu:
A z tablicy nie mogę zajarzyć... Nie pomoże nikt? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Spróbuj tego:
|
|
|
![]()
Post
#3
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Zwraca mi pustą tablicę.
To powyższe zwraca mi tablicę z najdłuższymi stringami, zarówno kluczami jaki wartościami. Ja chciałbym jednak OK. Tak osiągnę długości: Ale jak $najdluzszyString po za tym kodem? I podobno można prościej za pomocą array_column, ale za krótki jestem... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Możliwe, że nie do końca zrozumiałem problem, ale może coś takiego:
(IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Przecież podany przeze mnie kod działa:
W efekcie otrzymujesz: Kod Array ( [0] => 2016-10-18 08:38:18 [1] => jeszcze inny string [2] => a tu jeszcze jeden string ) Różnica w stosunku do tego co podałeś: Cytat 2016-10-18 08:38:18 2016-10-18 08:39:12 a tu jeszcze jeden string jest taka, że drugi element to u mnie Nazwa, a nie Czas. Wynika to z tego, że zwraca pierwszy najdłuższy ciąg znaków. Jeśli chcesz zwrócić ostatni to wystarczy zmienić:
na:
|
|
|
![]()
Post
#6
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Prawie (IMG:style_emoticons/default/smile.gif) Otrzymuję:
A chciałbym wartości liczbowe stringów, najlepiej jako jedną tablicę. Czyli
Gdzie [0] to długość klucza (bo wszędzie taki sam) a reszta to wartości... @phpion, zgadza się. Użyłem innych danych. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jest ok ? |
|
|
![]()
Post
#8
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam wrażenie, że mnie trollujesz....
|
|
|
![]()
Post
#10
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
I to jest chyba to (IMG:style_emoticons/default/smile.gif) Jeszcze tylko pokombinuje na okazję pustych stringów (IMG:style_emoticons/default/smile.gif)
Już wiem, jaki jest powód nie działania na mojej tablicy. Moja ma index od 0:
A Twoja od 1.
Dlatego sypie wyniki. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie czaje, jak to sypie wyniki?
zwraca mi:
Czyli tak jakby działa... Ten post edytował kapslokk 22.03.2016, 13:24:17 |
|
|
![]()
Post
#14
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Działa, działa. coś pokićkałęm z tablicą wcześniej.
Jak Twój kod ma się do UTF-8? |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wg tego raczej kiepsko:
http://wpengineer.com/2410/dont-use-strlen/ Ale zawsze możesz zamienić strlen na mb_strlen . |
|
|
![]()
Post
#16
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No właśnie, z tym kodem co kombinowałem liczyło dobrze, ale nie umiałem uzyskać poza pętlą danych:
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No dobra, ale masz jeszcze z czymś problem czy już nie?
|
|
|
![]()
Post
#18
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Już, nie. Teraz sprawdzam, jak zachowuje się z polskimi znakami.
Wielkie dzięki za pomoc. Piszę ponownie, bo zmieniłem koncepcję. Chciałbym uzyskać jedną tablicę, niezależnie od wartość indeksów i wartości tablicy. Czyli chcę znaleźć najdłuższe stringi w tablicy, niezależnie od tego, czy są w indeksach czy w wartościach. Z tablicy w pierwszym poście będzie tak: Cytat 2 - bo: Nr - z indeksu
25 - bo: a tu jeszcze jeden string - z wartości 19 - bo: 2016-10-18 08:38:18 - z wartości 4 - bo: Opis - z indeksu |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale to tak banalna zmiana, że serio mogłeś ją zrobić sam (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Niestety, za cienki jestem. Ponadto, nie o to mi chodziło (IMG:style_emoticons/default/wink.gif)
Zauważ, że tablica ma tylko 4 indeksy i tym samym 4 wartości: Cytat 'Nr' => '1', 'Nazwa' => 'Adam Kowalski', 'Czas' => '2016-10-18 08:38:18', 'Opis' => 'woda' Chciałbym wyciągnąć najdłuższe długości stringów, niezależnie czy to będzie indeks czy wartość. Czyli w tym przypadku, powinienem otrzymać tablicę tylko z 4 wartościami:
Nie wiem, jak mam zebrać klucze i wartości do jednej kupy. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to nie to, to może powiedz konkretnie co chcesz osiągnąć mialąc tą tablicę? |
|
|
![]()
Post
#22
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Tak, to wydaje się to, co chciałem osiągnąć. Potrzebuję długości ciągów, żeby zbudować tabelę z ASCII.
Mam tylko problem, jak teraz to wykorzystać po za Twoim kodem... |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#24
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
O to właśnie. Szukałem, ale nie natrafiłem na to rozwiązanie.
Mam jednak nadal zagwozdkę, nie umiem skorzystać z Twojego kodu a raczej z jego wyniku. Mam tablicę, ale jak próbuję użyć danych, to mam błąd: Cytat Warning: Missing argument 1 for getLongestKeyOrValue(), called *** on line 243 and defined in *** on line ***
Cytat Warning: Invalid argument supplied for foreach() in *** on line ***
|
|
|
![]()
Post
#25
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
getLongestKeyOrValue() - tu masz byc podana tablica dwuwymiarowa. Z komunikatow bledu wynika ze tam jej nie wstawiasz....
|
|
|
![]()
Post
#26
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Jak wyświetlam, to jest ok:
Ale tak się do tej tablicy odwołać? A tego przykładu https://github.com/viossat/arraytotexttable nie wiem, jak użyć (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#27
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ksyhoo no wez nie oslabiaj....
$zwroconaTablica = getLongestKeyOrValue($array); I w $zwroconaTablica masz to co cie interesuje i rob z tym co chcesz. |
|
|
![]()
Post
#28
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Funkcja str_pad oszukuje na polskich znakach. Czy jakoś można zaradzić?
|
|
|
![]()
Post
#29
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W linku co sam podales sa komentarze. Przejrzyj je.
|
|
|
![]()
Post
#30
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No właśnie dałem radę (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:14 |