Heim > Backend-Entwicklung > PHP-Tutorial > Eine kurze Analyse des Vergleichs der Verwendung von array_map und array_walk in PHP

Eine kurze Analyse des Vergleichs der Verwendung von array_map und array_walk in PHP

高洛峰
Freigeben: 2023-03-03 13:26:01
Original
1370 Leute haben es durchsucht

1. array_map()

1. Die Funktion array_map() wendet die benutzerdefinierte Funktion auf jeden Wert im Array an und gibt die benutzerdefinierte Funktion mit einem neuen Array von Werten zurück. Wenn nach Anwendung der Funktion kein Rückgabewert vorhanden ist, ist das entsprechende neue Wertearray leer.

2. Die Anzahl der von der Callback-Funktion akzeptierten Parameter sollte mit der Anzahl der an die Funktion array_map() übergebenen Arrays übereinstimmen.

3. Tipp: Sie können ein oder mehrere Arrays in die Funktion eingeben.

Wenn die Phasenfunktion zwei Arrays eingibt, sollte ihre Funktion auch zwei Parameter akzeptieren. Wenn Map einen Wert an die Funktion übergibt, nimmt sie jedes Mal einen von den beiden Arrays und übergibt ihn an die Funktion
. Das heißt, mehrere Arrays werden synchron übermittelt. Anstatt ein Array und dann die nächsten Arrays zu senden, muss die Funktion auch mehrere Parameter haben

4. Syntax: array array_map (callable callback,arrayarr1 [, array $… ] )

Beispiel:

<?php
//单数组形式
function myfunction($v)
{
 if ($v==="Dog")
 {
  return "Fido";
 }
 return $v;
}
 
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
 
//多数组形式
function myfunction1($v1,$v2)
{
 if ($v1===$v2)
 {
  return "same";
 }
 return "different";
}
 
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction1",$a1,$a2));
?>
Nach dem Login kopieren

2. array_walk()

1. array_walk – Verwenden Sie eine benutzerdefinierte Funktion, um eine Rückrufverarbeitung für jedes Element im Array durchzuführen

2. Syntax: bool array_walk (array &array,callablefuncname [, Mixed $userdata = NULL ] )

Parameter:

$array Das Eingabearray.

$funcname-Rückruffunktion, normalerweise akzeptiert $funcname zwei Parameter. Als erster Wert wird der Wert des Parameters $array und als zweiter der Schlüsselname verwendet.

$userdata Wenn der optionale Parameter $userdata angegeben wird, wird er als dritter Parameter an $funcname übergeben.

Hinweis:

Wenn $funcname direkt auf die Werte im Array einwirken muss, geben Sie das erste Argument für funcname als Referenz an (fügen Sie das kaufmännische Und hinzu). Auf diese Weise
verändern alle Änderungen an diesen Zellen auch das ursprüngliche Array selbst.

Rückgabewert:

Gibt TRUE bei Erfolg oder FALSE bei Fehler zurück.

Beispiel:

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
//传引用,改变了所传参数组
function test_alter(&$item1, $key, $prefix)
{
 $item1 = "$prefix: $item1";
}
 
function test_print($item2, $key)
{
 echo "$key. $item2<br />\n";
}
 
echo "Before ...:\n";
//单数组
array_walk($fruits, &#39;test_print&#39;);
 
//带额外参数
array_walk($fruits, &#39;test_alter&#39;, &#39;fruit&#39;);
echo "... and after:\n";
 
array_walk($fruits, &#39;test_print&#39;);
Nach dem Login kopieren

Die obige Routine gibt Folgendes aus:

Before ...:
d. lemon
a. orange
b. banana
c. apple
 ... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple
Nach dem Login kopieren

Wichtige Punkte:

Map dient hauptsächlich dazu, das neue Array von Ihrer Rückruffunktion verarbeiten zu lassen. Was Sie wollen, ist das Ergebnis.

walk Die Hauptsache ist, dass Sie Ihre Callback-Funktion einmal für jeden Parameter verwenden. Wichtig ist der Verarbeitungsprozess.

Walk kann als zusätzliche Parameter für die Rückruffunktion angesehen werden, während Map nicht

Walk hauptsächlich für jeden Wert im Array arbeitet und das Operationsergebnis Auswirkungen auf das Original hat Array

Map arbeitet hauptsächlich mit den Werten im Array und gibt das Array zurück, um ein neues Array zu erhalten

walk Es kann keine Rückgabewertkarte geben, weil es muss gefüllt werden Array


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage