ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルの array_map、array_filter、array_walk の違い

php_PHP チュートリアルの array_map、array_filter、array_walk の違い

WBOY
WBOYオリジナル
2016-07-20 10:59:351053ブラウズ

PHP では、array_map、array_filter、array_walk の 3 つの関数がすべてデータを操作します。これら 3 つの関数の使い方と違いを紹介します。 ​


配列ウォーク:

array_walk() はブール値を返します。コールバック関数が配列内の値に直接作用する必要がある場合は、コールバック関数の最初のパラメーターを参照として指定します。これらのセルを変更すると、元の配列自体も変更されます。この関数は配列のキーと値を同時に取得できます。

配列マップ:

array_map() は、コールバックが適用された後、arr1 内のすべてのセルを含む配列を返します。コールバックによって受け入れられる引数の数は、array_map() 関数に渡される配列の数と一致する必要があります。

簡単に言うと、コールバック関数は配列内の各値に最終的な影響を与え、array_map の呼び出しの戻り値に反映されます。

この関数は複数の配列を同時に操作できます。そして最後に配列にマージされます (各配列は添字に従って同じ 2 次元配列に並列に配置されます)。


配列フィルター:

この関数は特に過去の配列の要素に使用されます。簡単に言うと、コールバック関数によって判定された配列内の値をフィルタリングし、array_filter()関数を通じて処理された配列を返します。


したがって、この点を分析した後、array_walk と array_map を使用して配列の前処理を行うことができます。最も一般的なのは、各配列値のトリム操作です。以下は作者のサンプルコードです:

コードは次のとおりです コードをコピー

$tmp = array(' AAAA BBBB CCCC ', 'aaaa bbbb c ', ' dddddd eeeeee');

関数 array_walk_func(&$v, $k) {
$v = トリム($v);
}
array_walk($tmp, 'array_walk_func');
var_dump($tmp);

関数 array_map_func($v) {
リターントリム($v);
}
$ret = array_map('array_map_func', $tmp);
var_dump($ret);


出力結果:

配列(3) {
[0] =>
文字列(14) "AAAA BBBB CCCC"
[1] =>
文字列(11) "ああああ bbbb c"
[2] =>
string(13) "dddddd eeeeee"
}
配列(3) {
[0] =>
文字列(14) "AAAA BBBB CCCC"
[1] =>
文字列(11) "ああああ bbbb c"
[2] =>
string(13) "dddddd eeeeee"
}


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445607.html技術記事 PHP では、array_map、array_filter、array_walk の 3 つの関数がすべてデータを操作します。これら 3 つの関数の使い方と違いを紹介します。 array_walk: array_walk() は次の場合にブール値を返します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。