Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

Callback-Funktion auf ein Array anwenden

Sie befinden sich: Home > Php Tutorial > Callback-Funktion auf ein...

Callback-Funktion auf ein Array anwenden


Eintrag am:  08.12.2022
Hits / Besucher:  1179
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   martin12398 martin12398
 
Beschreibung

PHP array_map() ist eine Funktion, die es ermöglicht, eine bestimmte Funktion auf jedes Element eines Arrays anzuwenden. Die Funktion gibt ein neues Array zurück, dessen Werte vom Rückgabewert des Callbacks bestimmt werden.

Syntax:

array_map ( callback $callback , array $array1 [, array $... ] ) : array

Parameter-Liste: 

  • callback (erforderlich): Der Name der Funktion oder das Callback-Array, welches verwendet wird, um die Elemente des Arrays zu bearbeiten.
  • Array1 (erforderlich): Das Array, auf das die Callback-Funktion angewendet werden soll. Sie können mehrere Arrays angeben und diese als Parameter übergeben. Die Anzahl der Parameter muss gleich sein mit der Anzahl der übergebenen Arrays. 

Rückgabewerte:

Gibt ein Array zurück, dessen Werte vom Rückgabewert des Callbacks bestimmt werden. Wenn kein Array angegeben wurde, gibt die Funktion NULL zurück. 

 

Beispiel: Jeden Array-Wert mit 10 multiplizieren

<?php 

/**
* Erstes Array mit 3 Elementen

*/

$array1 = [1, 2 , 3];

$result= array_map(function($n){

/**
* Callback Funktionsübergabe ist „n“ hier definiert und hat den Parameter
* „n“ – das heißt jedes Mal, wenn diese Funktion aufgerufen wird,
* bekommt sie als Input 1 Wert von dem jeweiligen Array welche
* an diesem Index steht ($n). In unserem Fall kann es entweder
* 1, 2 oder 3 sein. Dieses Ergebnis soll in dem neuen result Array
* gespeichert werden.
*/

/**
* multipliziere jeden Wert mal 10 und speichere es im Result-Array ab
*/
return ($n * 10);
}, $array1);

/* Ausgabe des Ergebnis-Arrays */

print_r($result);
?>

Ausgabe des Result-Arrays:

Array ( [0] => 10 [1] => 20 [2] => 30 )

Dieser PHP-Code erstellt ein Array mit drei Zahlen. Anschließend wird eine selbst definierte Callback-Funktion definiert, welche jeden Wert mit 10 multipliziert. Das Ergebnis wird im Array $result gespeichert und mit print_r() angezeigt.

 

Beispiel für die Verwendung von PHP-array_map() mit einem Array von Objekten: 

<?php


class Person {
public string $firstName;
public string $lastName;

public function __construct(string $first, string $last) {
$this->firstName = $first;
$this->lastName = $last;
}
}

function getName(Person $p): string {
return $p->firstName . ' ' . $p->lastName;
}

/* Array von Person-Objekten */
$arr =[ new Person('John', 'Smith'), new Person('Mary', 'Jones') ];

/**
* Aufruf der Funktion getName und Übergabe von $arr
*/
$namesArr=array_map('getName', $arr);

echo "<pre>";
var_dump($namesArr);

echo "</pre>" ;

?>

Dieses Beispiel gibt die folgende Ausgabe: 

array(2) {

[0]=>
string(10)"John Smith", [1]=>
string(10)"Mary Jones"}

In diesem Beispiel haben wir ein Array mit Objekten erstellt und anschließend mithilfe der Funktion array_map() aufgerufen. Mit dieser Funktion können wir einen Callback auf jedes Element des Arrays anwenden und so das Ergebnis manipulieren. In unserem Fall haben wir die Funktion ‘getName’ als Callback übergeben, welche jedes Element des Arrays verarbeitet hat. Anschließend hat uns die Funktion ein neues Array zurückgegeben, bestehend aus den Namen der Personen im Original-Array. Dies wird danach mit var_dump() ausgeben.

Häufige Fragen zu array_map()
  • Was ist die Funktion von array_map() in PHP?
    • Dies ist eine Funktion in PHP, die es ermöglicht, eine angegebene Funktion auf jedes Element eines Arrays anzuwenden.

  • Wie wird array_map() verwendet?
    • array_map() wird verwendet, um auf alle Elemente eines Arrays mittels der übergebenen Callback-Funktion zu iterieren und das Ergebnis als neues Array zurückzugeben.

  • Welche Rückgabewerte liefert array_map()?
    • array_map() gibt ein neues Array mit den Ergebnissen der angewandten Callback-Funktion zurück.

  • Wie viele Parameter erwartet array_map()?
    • Diese erwartet mindestens zwei Parameter; die anzuwendende Callback-Funktion und das Quellarray selbst.

  • Was passiert, wenn man mehr als zwei Parameter übergibt?
    • Werden mehr als zwei Parameter übermittelt, werden diese sequenziell an jedes Element des Arrays übermittelt und gleichzeitig angewandt, bis alle Elemente bearbeitet sind. 

  • Kann man mit array_map () Objekte bearbeiten?
    • Ja, array_map() arbeitet problemlos mit Objekten. Die Callback-Funktion erhält jedes Objekt als Parameter und kann dessen Methoden und Eigenschaften nutzen, wie das Beispiel mit der Person-Klasse oben zeigt.

  • Gibt es Alternativen für die Verarbeitung von Arrays in PHP?
  • Kann man bei der Verarbeitung von objektorientiertem Code mithilfe von array_map() Erfolg haben?
    • Doch, array_map() funktioniert vollständig mit objektorientiertem Code. Als Callback können Closures, statische Methoden ([Klasse::class, 'methode']) oder benannte Funktionen verwendet werden.

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.