Php array_map -funksjon

Php array_map -funksjon
De array_map () Funksjon brukes i PHP for å lage en flerdimensjonal matrise ved å kombinere en eller flere matriser. En annen bruk av denne funksjonen er å endre hvert element i matrisen basert på den spesifikke tilstanden. Den sender hver verdi til en brukerdefinert tilbakeringingsfunksjon som returnerer en ny matrise etter modifisering. Bruken av denne funksjonen blir diskutert i denne opplæringen.

Syntaks

Array Array_Map (tilbakeringbar $ tilbakeringing, Array $ Array, Array ... $ Arrays);

De første og andre argumentene for denne funksjonen er obligatoriske. Det første argumentet inneholder tilbakeringingsfunksjonen som vil endre matriseelementene. Det andre argumentet inneholder matrisen som vil bli endret. De andre argumentene er valgfrie og brukes til å lagre andre matriser. Den vil returnere en modifisert matrise generert av tilbakeringingsfunksjonen.

Bruk av array_map () -funksjonen

Bruken av array_map () -funksjonen for flere formål vises i denne delen av opplæringen.

Eksempel 1: Lag en matrise ved å fjerne de spesifikke verdiene til matrisen
Opprett en PHP -fil med følgende skript for å opprette en ny matrise ved å fjerne noen spesifikke verdier fra hovedmatrisen. En rekke numeriske data er blitt erklært i skriptet som inneholder 5 elementer. Tilbakeringingsfunksjonen kalt callback_func () har erklært å opprette en ny matrise ved å fjerne disse tallene som er større enn 99 fra den numeriske matrisen. Returverdien til funksjonen Array_Map () vil bli skrevet ut senere:

// erklære en rekke numeriske data
$ num_array = Array (78, 45, 300, 98, 690);
// Skriv ut arrayverdiene
ekko "Array -verdier før du ringer array_map () -funksjon:
";
print_r ($ num_array);
/*
Erklære tilbakeringingsfunksjon
For å fjerne disse tallene fra matrisen
De er større enn 99
*/
funksjon callback_func ($ verdi)

// sjekk verdien er større enn 99 eller ikke
if ($ verdi> 99)

// Fjern verdien fra matrisen
unset ($ verdi);

ellers
returner $ verdi;

ekko "
Array -verdier etter å ha ringt array_map () -funksjon:
";
// Skriv ut matrisen etter å ha fjernet de tomme verdiene
print_r (array_filter (array_map ("callback_func", $ num_array)));
?>

Produksjon:

Følgende utgang vises etter å ha utført forrige skript. To elementer i matrisen er mer enn 99, som er 300 og 690. Disse to elementene er fjernet fra utgangsgruppen.

Eksempel 2: Lag en matrise ved å bruke dataene fra flere matriser
Opprett en PHP -fil med følgende skript som vil opprette en matrise ved å beregne kraften der grunnverdien vil bli hentet fra en matrise, og strømverdien vil bli hentet fra en annen matrise. Den nylig genererte matrisen vil bli skrevet ut senere:

// erklære to numeriske matriser med like elementer
$ num_arr1 = Array (2, 3, 5, 8);
$ num_arr2 = Array (5, 4, 3, 2);
// Skriv ut verdiene til to matriser
ekko "
Verdiene til to matriser:
";
print_r ($ num_arr1);
ekko "
";
print_r ($ num_arr2);
ekko "
";
/*
Definer tilbakeringingsfunksjonen for å beregne strømbasert
på to arrayverdier der verdien av den første matrisen
vil være grunnverdien og verdien av den andre matrisen vil være strømmen.
*/
funksjon Calculate_power ($ val1, $ val2)
// Beregn kraften
Return POW ($ VAL1, $ VAL2);

// Skriv ut arrayen som er returnert av Array_Map () -funksjonen
ekko "
Array -verdiene som returneres av Array_Map () -funksjonen:
";
print_r (array_map ("calculat_power", $ num_arr1, $ num_arr2));
?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet:

Eksempel 3: Lag en matrise ved å kombinere to matriser uten tilbakeringingsfunksjon
I de to foregående eksemplene ble tilbakeringingsfunksjonen brukt i det første argumentet til matray_map () -funksjonen. Imidlertid kan denne funksjonen brukes uten tilbakeringingsfunksjon, og null Verdien ble brukt i det første argumentet for funksjonen. Opprett en PHP -fil med følgende skript for å lage en ny matrise ved å kombinere verdiene til to matriser uten å bruke noen tilbakeringingsfunksjon:

// erklære to matriser av strengverdier
$ name_arr1 = array ("Sakib", "Sarleez", "Janifer");
$ name_arr2 = array ("tania", "tawsif", "zafar", "fatema");
// Skriv ut verdiene til to matriser
ekko "
Verdiene til to matriser:
";
print_r ($ name_arr1);
ekko "
";
print_r ($ name_arr2);
ekko "
";
// Skriv ut arrayen som er returnert av Array_Map () -funksjonen
ekko "
Array -verdiene som returneres av Array_Map () -funksjonen:
";
print_r (array_map (null, $ name_arr1, $ name_arr2));
?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet:

Eksempel 4: Lag en matrise ved å endre de numeriske verdiene til et assosiativt utvalg
Opprett en PHP -fil med følgende skript for å endre de numeriske verdiene til Associative Array. Et assosiativt utvalg av to elementer er blitt erklært i skriptet. Tilbakeringingsfunksjonen som heter Modify_array () ble erklært å legge til “$”Før hver tallverdi på matrisen.

// erklære et assosiativt utvalg
$ Assoc_Array = ["Navn" => "Pen", "Pris" => 10];
// Skriv ut arrayverdiene
ekko "Array -verdier før du ringer array_map () -funksjon:
";
print_r ($ assoc_array);
/*
Erklære en tilbakeringingsfunksjon til
Legg til '$' før hver numerisk verdi av matrisen
*/
funksjon modify_array ($ val)
if (is_numeric ($ val))
Returner "$".$ val;
ellers
returner $ val;

ekko "

Array -verdier etter å ha ringt array_map () -funksjon:
";
// Skriv ut den modifiserte matrisen
print_r (array_map ("modify_array", $ assoc_array));
?>

Produksjon:

Følgende utgang vises etter å ha utført forrige skript. Ett element i matrisen inneholder den numeriske verdien som er 10. Verdien har endret seg til “$ 10” i utgangsarrayen.

Eksempel 5: Lag en matrise basert på nøklene og verdiene til det assosiative matrisen
Tilbakekallende () -funksjonen til array_map () -funksjonen kan ta to argumenter for det assosiative matrisen. Lag en PHP -fil med følgende skript for å generere en ny matrise ved å bruke tastene og verdiene til det assosiative matrisen. Tilbakeringingsfunksjonen som heter Modify_assoc_array () vil ta nøkkelen til matrisen i det første argumentet og verdien av matrisen i det andre argumentet. Utgangsarrayen vil inneholde de kombinerte verdiene for nøkkel og verdi.

// erklære et assosiativt utvalg
$ Marks = ['01344' => 3.67, '01637' => 3.40, '05632' => 2.99, '03733' => 3.25];
// Skriv ut arrayverdiene
ekko "Verdiene til det assosiative matrisen:
";
print_r ($ merker);
/*
Erklære en tilbakeringingsfunksjon til
Lag en ny matrise basert på nøklene og verdiene
av det assosiative matrisen
*/
funksjon modify_assoc_array ($ val1, $ val2)
Returner "CGPA på $ VAL1 er $ VAL2";

ekko "

Array -verdiene etter å ha ringt Array_Map () -funksjonen:
";
// Skriv ut de nye arrayverdiene
print_r (array_map ('modify_assoc_array', array_keys ($ merker), array_values ​​($ markerer)));
?>

Produksjon:

Følgende utgang vises etter å ha utført det forrige skriptet:

Konklusjon

De forskjellige bruksområdene for array_map () -funksjonen er forklart i denne opplæringen. Forhåpentligvis kan denne artikkelen hjelpe PHP -brukere til å vite formålet med å bruke denne funksjonen og bruke den riktig i skriptet. Vennligst sjekk ut Linuxhint for mer informative artikler.