PHP Array_Filter -funksjon

PHP Array_Filter -funksjon
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.