Heim  >  Artikel  >  Backend-Entwicklung  >  array_map/array_filter/array_walk durchläuft das Array auf die gleiche Weise wie foreach. Wer möchte schneller sein?

array_map/array_filter/array_walk durchläuft das Array auf die gleiche Weise wie foreach. Wer möchte schneller sein?

WBOY
WBOYOriginal
2016-10-22 00:14:251480Durchsuche

array_walk entspricht foreach:

<code>$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
    echo "键:$k 值:$v\n";
});</code>

Entfernen Sie beispielsweise das führende und nachfolgende Leerzeichen des Array-Elements $arr:

<code>array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组

var_export(
    array_filter([1, 2, 3], function($v) {
        return $v > 1;
    })
);
和
foreach([1, 2, 3] as $k => $v) {
    if($v > 1) {
        $tmp[$k] = $v;
    }
}
var_export($tmp);
都输出:
array (
  1 => 2,
  2 => 3,
)</code>

PHP-Array-Mapping-Reduktion (MapReduce):

<code>array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
    array_map(function ($v) {
        return $v * $v;
    }, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
    $tmp[] = $v * $v;
}
var_export($tmp);
都输出:
array (
  0 => 1,
  1 => 4,
  2 => 9,
)</code>

array_reduce: Verwenden Sie die Rückruffunktion, um das Array iterativ auf einen einzelnen Wert zu reduzieren
//Ausgabe 16, also 10 1 2 3, mit 10 als Anfangswert.

<code>echo array_reduce([1, 2, 3], function($result, $item) {
    $result = $result + $item;
    return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
    $result = $result + $v;
}
echo $result;</code>

Die Ausführungseffekte sind die gleichen, aber ob es schneller ist, Funktionen oder foreach zu verwenden

Antwortinhalt:

array_walk entspricht foreach:

<code>$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
    echo "键:$k 值:$v\n";
});</code>

Entfernen Sie beispielsweise das führende und nachfolgende Leerzeichen des Array-Elements $arr:

<code>array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组

var_export(
    array_filter([1, 2, 3], function($v) {
        return $v > 1;
    })
);
和
foreach([1, 2, 3] as $k => $v) {
    if($v > 1) {
        $tmp[$k] = $v;
    }
}
var_export($tmp);
都输出:
array (
  1 => 2,
  2 => 3,
)</code>

PHP-Array-Mapping-Reduktion (MapReduce):

<code>array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
    array_map(function ($v) {
        return $v * $v;
    }, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
    $tmp[] = $v * $v;
}
var_export($tmp);
都输出:
array (
  0 => 1,
  1 => 4,
  2 => 9,
)</code>

array_reduce: Verwenden Sie die Rückruffunktion, um das Array iterativ auf einen einzelnen Wert zu reduzieren
//Ausgabe 16, also 10 1 2 3, mit 10 als Anfangswert.

<code>echo array_reduce([1, 2, 3], function($result, $item) {
    $result = $result + $item;
    return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
    $result = $result + $v;
}
echo $result;</code>

Die Ausführungseffekte sind die gleichen, aber ob es schneller ist, Funktionen oder foreach zu verwenden

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