Dane z tablicy można filtrować, iterując elementy tablicy za pomocą pętli w PHP. To zadanie można wykonać bardzo łatwo za pomocą funkcji array_filter (). W tej funkcji używana jest funkcja zwrotu zwrotnego zdefiniowana przez użytkownika do filtrowania danych. Tablica zwrócona przez tę funkcję zachowała klucz oryginalnej tablicy. W tym samouczku pokazano różne zastosowania funkcji Array_Filter ().
Składnia:
Składnia Array_Filter () podano poniżej.
tablica array_filter ($ array, $ callback_function, $ flag)
- Pierwszy argument funkcji jest obowiązkowy i zawiera tablicę i będzie używany do filtrowania.
- Drugi argument jest opcjonalny i jest funkcją wywołania zwrotnego używanego do filtrowania danych tablicy.
- Trzeci argument jest opcjonalny i może przechowywać dwa rodzaje wartości. Jedna wartość to array_filter_use_key, który przekazuje klucz tablicy jako argument w funkcji zwrotnej. Kolejną wartością może być array_filter_use_both, który przekazuje zarówno klucz, jak i wartość jako argument funkcji zwrotnej.
- Zwraca filtrowaną tablicę.
W następnej części samouczka pokazano różne zastosowania funkcji array_filter ().
Przykład-1: Filtruj tablicę numeryczną
Utwórz plik PHP z następującym skryptem, aby filtrować wartości tablicy na podstawie warunku. Tablica zadeklarowana w skrypcie zawiera wartości dodatnie, negatywne i zerowe. Funkcja array_filter () została użyta w skrypcie do pobierania wartości ujemnych z tablicy. Następnie wydrukowano filtrowaną tablicę.
// deklaruj liczbę liczb dodatnich, negatywnych i zerowych
$ array = [78, -56, 45, 0, -33, 59, -21];
// Utwórz nową gamę liczb ujemnych
$ filter_array = array_filter ($ array,
funkcja ($ a)
zwrot $ a < 0;
);
// Wydrukuj nową tablicę
echo „Negatywne liczby tablicy to:
";
foreach ($ filtr_Array as $ value)
echo $ wartość."
";
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.
Przykład-2: Filtruj tablicę asocjacyjną
Utwórz plik PHP z następującym skryptem, aby filtrować wartości tablicy asocjacyjnej na podstawie warunku. Tablica zawiera nazwę ucznia jako klucz i znak jako wartość. Funkcja array_filter () została użyta w skrypcie do pobierania tych elementów z tablicy, w których wartość wynosi ponad 79. Następnie wydrukowano filtrowaną tablicę.
// deklaruj szereg asocjacyjny czterech elementów
$ marks = ["mir ali" => 90, "Kamal Hossain" => 78, „Sakil ahamed” => 82, „Moniruzzaman” => 85];
// Utwórz nową tablicę zawierającą liczbę więcej niż 79
$ filter_marks = array_filter ($ marki,
funkcja ($ mark)
zwrot $ Mark> 79;
);
// Wydrukuj nową tablicę
foreach ($ filtr_marks jako $ key => $ wartość)
echo $ klucz. " uzyskany ".$ wartość."
";
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.
Przykład-3: Filtruj tablicę asocjacyjną za pomocą obiektu
Utwórz plik PHP z następującym skryptem, który odfiltruje wartości tablicy za pomocą obiektu klasy w funkcji wywołania zwrotnego. Tablica asocjacyjna zawiera identyfikator wnioskodawcy jako klucz i „obecny” lub „nieobecny” jako wartość. Funkcja array_filter () filtruje te elementy, w których wartości są „obecne”.
/*Zadeklaruj klasę, aby znaleźć obecnych wnioskodawców
* Za pomocą metody*/
kontrola klas
Funkcja publiczna obecna ($ val)
return $ val == „Present”;
// zadeklaruj szereg asocjacyjny 5 elementów
$ Applicants = ['08967' => 'Present', '04567' => 'nieobecny', '08923' => 'Present', '03412' => 'nieobecny', '07811' => 'Present'];
/*Utwórz nową tablicę za pomocą array_filter ()
z funkcją obiektu i wywołania zwrotnego*/
$ Present_Applicants = array_filter ($ kandydaci,
[nowy Check (), „Present”]
);
// Wydrukuj liczbę wszystkich kandydatów
echo „całkowity wnioskodawcy =”.hrabia (kandydaci)."
";
// Wydrukuj liczbę obecnych kandydatów
Echo „obecni wnioskodawcy =”.hrabia ($ Present_Applicants);
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.
Przykład-4: Filtruj tablicę asocjacyjną za pomocą flagi
Utwórz plik PHP z następującym skryptem, aby odfiltrować tablicę na podstawie flag Array_filter_use_Key i Array_filter_use_use_both. Pierwsza funkcja Array_filter () odzyska element z tablicy, w której jest wartość kluczowa ”Londyn'. Druga funkcja array_filter () pobiera element z tablicy, w której jest wartość kluczowa ”Kabul', a wartość to'Afganistan'.
// zadeklaruj tablicę asocjacyjną
$ array = ['dhaka' => „Bangladesz”, „kabul” => „Afganistan”, „canberra” => „Australia”,
„Pekin” => „Chiny”, „Londyn” => „Anglia”, „Washington D.C.„=>„ Stany Zjednoczone ”];
// za pomocą array_filter () z array_filter_use_key
$ filtted_array1 = array_filter (
$ tablica,
fn ($ k) => $ k == 'London', array_filter_use_key);
// Wydrukuj wartość filtrowanej tablicy
foreach ($ filtted_array1 jako $ key => $ wartość)
Echo "
Nazwa kraju: wartość $
";
Echo „Capital Name. $ klucz
";
// za pomocą array_filter () z array_filter_use_both
$ filtted_array2 = array_filter (
$ tablica,
fn ($ v, $ k) => $ k == 'kabul' && $ v == 'afganistan', array_filter_use_both);
// Wydrukuj wartość filtrowanej tablicy
foreach ($ filtred_array2 jako $ key => $ wartość)
Echo "
Nazwa kraju: wartość $
";
Echo „Capital Name. $ klucz
";
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.
Przykład-5: Filtruj tablicę wielowymiarową
Utwórz plik PHP z następującym skryptem, który odfiltruje wartości tablicy dwuwymiarowej. Funkcja array_filter () filtruje te wartości z tablicy, w której wartość wynagrodzenie Klucz jest większy niż 60000.
// zadeklaruj dwuwymiarową tablicę
$ pracowników = [
[„Nazwa” => „Jafar Iqbal”, „e -mail” => '
[email protected] ', „pensja” => 60000],
[„Nazwa” => „Mohammed Ali”, „e -mail” => '
[email protected] ', „pensja” => 55000],
[„Nazwa” => 'Nila Akter', 'e -mail' => '
[email protected] ', „pensja” => 73000],
[„Nazwa” => „Riya Chowdhury”, „e -mail” => '
[email protected] ', „pensja” => 80000]];
// Filtruj wartości tablicy na podstawie pensji
$ filterRed_Employees = array_filter ($ pracownicy, funkcja ($ array)
// Zwracaj pracowników, których pensja wynosi ponad 60000
if ($ array ['pensa']> 60000)
zwrot $ array;
);
// Wydrukuj filtrowaną tablicę
Echo '
';;
print_r ($ filtRed_Employees);
Echo '
';;
?>
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.
Wniosek:
Funkcja array_filter () może inaczej filtrować wartości tablicy za pomocą funkcji wywołania zwrotnego z wartością lub bez wartości flagi. W przykładach tego samouczka pokazano sposoby filtrowania tablic numerycznych i asocjacyjnych jednowymiarowych i dwuwymiarowych. Mam nadzieję, że użytkownicy PHP będą w stanie filtrować wartości na podstawie ich wymagań po przeczytaniu tego samouczka.