![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 5 Dołączył: 9.04.2008 Skąd: W-WA Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Nie wiem, czy to czego szukam jest aż tak malo popularne, że tego nigdzie nie ma, czy po prostu ja nie umiem szukać... Mam wielowymiarową tablice ze stringami w kluczach. Chciałbym w niej zostawić tablice w których kluczu znajdzie się dany ciąg znaków. Dokładnie chodzi mi o coś takiego jak array_filter tutaj: Cytat Description: Return array of matching values from array using regular expression. <?php class array_ereg { function array_ereg($pattern) { $this->pattern = $pattern; } function ereg($string) { return ereg($this->pattern, $string); } } ?> Usage : <?php $matches = array_filter($subject, array(new array_ereg($pattern), 'ereg')); ?> Example: <?php $subject = array ("Thumbs.db", "image001.png", "image001.jpg", "image002.png"); print_r(array_filter($subject, array(new array_ereg("image[0-9]{3}\.png"), 'ereg'))); ?> Outputs: Array ( [1] => image001.png [3] => image002.png ) Tylko, żeby nie brało pod uwagę zawartości tylko klucz. -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 2 Dołączył: 28.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 5 Dołączył: 9.04.2008 Skąd: W-WA Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie. To array keys wyglądało ciekawie, ale chyba jednak nie da rady tym zrobić. Foreach zupełnie odpada a to array walk to chyba podobnie jak foreach działa z tego co zrozumiałem.
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 2 Dołączył: 28.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego? Da się to zrobić używając dowolnej z tych funkcji. To tylko kwestia wybrania tej, która bardziej Ci odpowiada, a nie tej którą się da.
Rzecz jasna musisz to połączyć z preg_match lub preg_replace_callback. Ten post edytował Kabraxis 30.06.2009, 18:08:50 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 5 Dołączył: 9.04.2008 Skąd: W-WA Ostrzeżenie: (0%) ![]() ![]() |
W sumie to nie potrzebuje żadnego z tych 3 co podałeś wyżej, wystarczy samo preg_match. Wielkie dzięki
![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A ja bym zastosował inny sposób. Skoro nie ma funkcji typu array_filter na kluczach to zrób
http://php.net/array_flip przefiltruj a potem znowu odwróć. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 5 Dołączył: 9.04.2008 Skąd: W-WA Ostrzeżenie: (0%) ![]() ![]() |
Tablica jest wielowymiarowa, więc pojawia mi się taki błąd
Cytat Can only flip STRING and INTEGER values! in /****/tablica.php on line 51 Ale pomysł ciekawy ^^. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wiec najlepszym twoim rozwiazaniem jest zwykly foreach i call_user_func badz nawet bez tego. Możliwości jest mnóstwo.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 01:35 |