Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usuwanie stringów z tablicy
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----



Witam serdecznie,
Mam taką tablicę (oryginał ma parę tysięcy wierszy):
  1. (
  2. [0] => 27|2014-03-26 22:03:26
  3. [1] => 18|2014-03-05 10:39:36
  4. [2] => 15|2014-03-26 17:40:17
  5. [3] => 21|2014-03-05 18:04:19
  6. [4] => 18|2014-03-26 22:17:16
  7. )


Wie ktoś może jak można by wyrzucić wszystkie elementy tablicy które mają w nazwie (w pierwszym członie) "18"?

Z góry dziękuję za pomoc,
Northwest
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vonski
post
Post #2





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nadal nie rozumiem niechęci do spróbowania. Płacisz za każde żądanie do serwera? (IMG:style_emoticons/default/wink.gif)
Jeżeli nie wiesz czy będzie to wydajne, to napisz skrypt, uruchom go na docelowym serwerze, na którym będzie stała strona / system i oceń czy zadowala Cię wydajność takiego, czy innego rozwiązania.

Co do powyższego... Zrobiłem test na tablicy zawierającej 100000 (sto tysięcy) elementów takich jak: "98|2012-03-26 22:03:54" (poszczególne człony wygenerowałem sobie wcześniej zwykłym rand()).
Dla zwykłego foreach + strpos + unset czas oscyluje w granicach 0,12 s lokalnie (procesor i5). Na hostingu w Rackspace, procesor bodajże 1 GHz - czas ok. 0,15s. Nie jest tak źle. Z tym że pamiętaj, że ja robiłem test na 100 000 elementów podczas gdy Ty masz ok. 10 000, więc powinno być jeszcze lepiej.
Z array_filter już jest trochę gorzej, lokalnie czas ok 0,6s. Na hostingu nie sprawdzałem, ale zapewne też koło tego.

Jeżeli jednak nadal boisz się wykonać 7000 iteracji, to biorąc pod uwagę, że zanim Twoje dane stają się tablicą, są one w stringu, to może jakoś od tej strony to ugryziesz? Jeżeli np. spodziewasz się, że większość rekordów będzie trzeba i tak odsiać, bo większość z nich zaczyna się od "18", to może można to odfiltrować już na etapie stringa wyrażeniem regularnym. Choć tak szczerze mówiąc, to nie wydaje mi się, żeby regexp był wydajniejszy.
No, ale gdybać sobie można całą noc - trzeba spróbować (IMG:style_emoticons/default/smile.gif)

Generalnie wniosek jest taki, że gdyby PHP miało stawać się wysoko niewydajne dla takiego problemu jak powyżej, to kombajny typu Magento przemielające przy każdym żądaniu zbiory danych w tablicach tablic tablic obiektów, nie miałby racji bytu (tak, nie znoszę Magento (IMG:style_emoticons/default/wink.gif) )
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 22:41