Heim  >  Artikel  >  Backend-Entwicklung  >  PHP sendet die Werte im Array an die benutzerdefinierte Funktion und gibt eine String-Funktion array_reduce() zurück

PHP sendet die Werte im Array an die benutzerdefinierte Funktion und gibt eine String-Funktion array_reduce() zurück

黄舟
黄舟Original
2017-11-08 13:36:061592Durchsuche

Instanz

Sendet den Wert im Array an den BenutzerBenutzerdefinierte Funktion und gibt eine Zeichenfolge zurück:

<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction"));
?>

Definition und Verwendung

array_reduce() sendet die Werte im Array an die benutzerdefinierte Funktion und gibt einen String zurück.

Hinweis: Wenn das Array leer ist oder kein Anfangswert übergeben wird, gibt diese Funktion NULL zurück.

Syntax

array_reduce(array,myfunction,initial)
参数 描述
array 必需。规定数组。
myfunction 必需。规定函数的名称。
initial 可选。规定发送到函数处理的第一个值。
Technische Details

Seit PHP 5.3.0 akzeptiert der Anfangsparameter mehrere Typen (gemischt) und Versionen vor PHP 5.3.0 unterstützen nur Ganzzahlen .
Rückgabewert: Gibt den Ergebniswert zurück.
PHP-Version: 4.0.5+
Protokoll aktualisieren:

更多实例

实例 1

带 initial 参数:

<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Dog","Cat","Horse");
print_r(array_reduce($a,"myfunction",5));
?>

实例 2

返回总和:

<?php
function myfunction($v1,$v2)
{
return $v1+$v2;
}
$a=array(10,15,20);
print_r(array_reduce($a,"myfunction",5));
?>

array_reduce的强大不仅如此。看下面的例子。将数组$arr的首个元素弹出,作为初始值,避免min($result['min'], $item['min'])中$result为空。

否则最终结果min是空的。

$arr = array( 
    array(&#39;min&#39; => 1.5456, &#39;max&#39; => 2.28548, &#39;volume&#39; => 23.152), 
    array(&#39;min&#39; => 1.5457, &#39;max&#39; => 2.28549, &#39;volume&#39; => 23.152), 
    array(&#39;min&#39; => 1.5458, &#39;max&#39; => 2.28550, &#39;volume&#39; => 23.152), 
    array(&#39;min&#39; => 1.5459, &#39;max&#39; => 2.28551, &#39;volume&#39; => 23.152), 
    array(&#39;min&#39; => 1.5460, &#39;max&#39; => 2.28552, &#39;volume&#39; => 23.152), 
); 

$initial = array_shift($arr); 

$t = array_reduce($arr, function($result, $item) { 
    $result[&#39;min&#39;] = min($result[&#39;min&#39;], $item[&#39;min&#39;]); 
    $result[&#39;max&#39;] = max($result[&#39;max&#39;], $item[&#39;max&#39;]); 
    $result[&#39;volume&#39;] += $item[&#39;volume&#39;]; 

    return $result; 
}, $initial);

 总之,这种写法比foreach更优雅,更少的定义变量。推荐使用。


Das obige ist der detaillierte Inhalt vonPHP sendet die Werte im Array an die benutzerdefinierte Funktion und gibt eine String-Funktion array_reduce() zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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