Dataene til matrisen kan filtreres ved å iterere matriseelementene med løkken i PHP. Denne oppgaven kan gjøres veldig enkelt ved bruk av array_filter () -funksjonen. Den brukerdefinerte tilbakeringingsfunksjonen brukes i denne funksjonen for å filtrere dataene. Array. Ulike bruksområder av array_filter () -funksjonen er vist i denne opplæringen.
Syntaks:
Syntaksen til array_filter () er gitt nedenfor.
Array Array_Filter ($ Array, $ callback_function, $ flagg)
- Funksjonens første argument er obligatorisk og inneholder en matrise og vil bli brukt til filtrering.
- Det andre argumentet er valgfritt, og det er en tilbakeringingsfunksjon som brukes til å filtrere matrisedataene.
- Det tredje argumentet er valgfritt, og det kan lagre to typer verdier. En verdi er array_filter_use_key som gir nøkkelen til matrisen som argumentet i tilbakeringingsfunksjonen. En annen verdi kan være array_filter_use_both, som passerer både nøkkel og verdi som tilbakeringingsfunksjonens argument.
- Den returnerer den filtrerte matrisen.
Ulike bruksområder av array_filter () -funksjoner er vist i neste del av opplæringen.
Eksempel-1: Filtrer en numerisk matrise
Opprett en PHP -fil med følgende skript for å filtrere matriseverdiene basert på en tilstand. Arrayen erklært i skriptet inneholder positive, negative og null verdier. Funksjonen Array_Filter () har blitt brukt i skriptet for å hente de negative verdiene fra matrisen. Deretter ble den filtrerte matrisen skrevet ut.
// erklære et numerisk utvalg av positive, negative og null tall
$ array = [78, -56, 45, 0, -33, 59, -21];
// Lag en ny rekke negative tall
$ filter_array = array_filter ($ array,
funksjon ($ a)
Returner $ a < 0;
);
// Skriv ut den nye matrisen
Ekko "Negative tall på matrisen er:
";
foreach ($ filter_array som $ verdi)
ekko $ verdi.""
";
Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.
Eksempel-2: Filtrer et assosiativt utvalg
Opprett en PHP -fil med følgende skript for å filtrere de assosiative arrayverdiene basert på en tilstand. Arrayen inneholder studentens navn som nøkkelen og merket som verdien. Funksjonen Array_Filter () har blitt brukt i skriptet for å hente elementene fra matrisen der verdien er mer enn 79. Deretter ble den filtrerte matrisen skrevet ut.
// erklære et assosiativt utvalg av fire elementer
$ Marks = ["Mir Ali" => 90, "Kamal Hossain" => 78, "Sakil Ahamed" => 82, "Moniruzzaman" => 85];
// Opprett en ny matrise som inneholder nummer mer enn 79
$ filter_marks = array_filter ($ merker,
funksjon ($ mark)
Return $ Mark> 79;
);
// Skriv ut den nye matrisen
foreach ($ filter_marks som $ nøkkel => $ verdi)
Echo $ Key. "oppnådd".$ verdi.""
";
Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.
Eksempel-3: Filtrer et assosiativt utvalg ved hjelp av et objekt
Opprett en PHP -fil med følgende skript som filtrerer verdiene til en matrise ved å bruke klasseobjektet i tilbakeringingsfunksjonen. Den assosiative matrisen inneholder søker -IDen som nøkkel og 'nåtid' eller 'fraværende' som verdi. Funksjonen Array_Filter () vil filtrere de elementene der verdiene er 'til stede'.
/*Erklære en klasse for å finne ut de nåværende søkerne
* Ved å bruke en metode*/
Klassesjekk
Offentlig funksjon til stede ($ val)
Returner $ val == "Present";
// erklære et assosiativt utvalg av 5 elementer
$ søkere = ['08967' => 'Present', '04567' => 'fraværende', '08923' => 'Present', '03412' => 'fraværende', '07811' => 'Present'];
/*Opprett en ny matrise ved å bruke array_filter ()
med objektet og tilbakeringingsfunksjonen*/
$ Present_Applicants = array_filter ($ søkere,
[Ny sjekk (), 'Present']
);
// Skriv ut antall totale søkere
ekko "Total søkere =".telle ($ søkere).""
";
// Skriv ut antall nåværende søkere
Echo "Present Søkers =".count ($ Present_applicants);
Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.
Eksempel-4: Filtrer et assosiativt utvalg ved hjelp av et flagg
Opprett en PHP -fil med følgende skript for å filtrere matrisen basert på array_filter_use_key og array_filter_use_both -flaggene. Den første array_filter () -funksjonen vil hente elementet fra matrisen der nøkkelverdien er 'London'. Den andre array_filter () -funksjonen vil hente elementet fra matrisen der nøkkelverdien er 'Kabul', og verdien er'Afghanistan'.
// erklære et assosiativt utvalg
$ array = ['dhaka' => 'Bangladesh', 'Kabul' => 'Afghanistan', 'Canberra' => 'Australia',
'Beijing' => 'China', 'London' => 'England', 'Washington D.C.'=>' USA '];
// Bruke array_filter () med array_filter_use_key
$ filtered_array1 = array_filter (
$ Array,
fn ($ k) => $ k == 'London', array_filter_use_key);
// Skriv ut verdien på den filtrerte matrisen
foreach ($ filtered_array1 som $ nøkkel => $ verdi)
ekko "
Landsnavn: $ Verdi
";
ekko "Kapitalnavn. $ nøkkel
";
// Bruke array_filter () med array_filter_use_both
$ filtered_array2 = array_filter (
$ Array,
fn ($ v, $ k) => $ k == 'kabul' && $ v == 'afghanistan', array_filter_use_both);
// Skriv ut verdien på den filtrerte matrisen
foreach ($ filtered_array2 som $ nøkkel => $ verdi)
ekko "
Landsnavn: $ Verdi
";
ekko "Kapitalnavn. $ nøkkel
";
Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.
Eksempel-5: Filtrer en flerdimensjonal matrise
Opprett en PHP-fil med følgende skript som vil filtrere verdiene til den todimensjonale matrisen. Funksjonen Array_Filter () vil filtrere disse verdiene fra matrisen der verdien av lønn nøkkelen er større enn 60000.
// erklære en todimensjonal matrise
$ ansatte = [
['Navn' => 'Jafar Iqbal', 'e -post' => '
[email protected] ',' lønn '=> 60000],
['Navn' => 'Mohammed Ali', 'E -post' => '
[email protected] ',' lønn '=> 55000],
['name' => 'nila akter', 'e -post' => '
[email protected] ',' lønn '=> 73000],
['Navn' => 'Riya Chowdhury', 'e -post' => '
[email protected] ',' lønn '=> 80000]];
// Filtrer matriseverdiene basert på lønn
$ filterred_employes = array_filter ($ ansatte, funksjon ($ array)
// returnerte ansatte hvis lønn er mer enn 60000
if ($ array ['lønn']> 60000)
Returner $ Array;
);
// Skriv ut den filtrerte matrisen
ekko '
';
print_r ($ filterred_employmes);
ekko '
';
?>
Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.
Konklusjon:
Funksjonen Array_Filter () kan filtrere arrayverdiene annerledes ved å bruke tilbakeringingsfunksjonen med eller uten flaggverdien. Måtene å filtrere numeriske og assosiative endimensjonale og todimensjonale matriser er vist i eksemplene på denne opplæringen. Jeg håper PHP -brukerne vil kunne filtrere verdiene basert på kravene deres etter å ha lest denne opplæringen.