ホームページ  >  記事  >  バックエンド開発  >  PHPのarray_map関数とarray_walk関数の使い方の違い

PHPのarray_map関数とarray_walk関数の使い方の違い

不言
不言オリジナル
2018-08-15 09:31:432404ブラウズ

この記事の内容はPHPにおけるarray_map関数とarray_walk関数の使い方の違いについての内容であり、一定の参考値となっておりますので、困っている方は参考にしていただければ幸いです。

array_map():
1. array_map() 関数は、ユーザー定義関数を配列内の各値に適用し、ユーザー定義関数が適用された後のバンドを返します。新しい値を持つ配列の場合、関数の適用後に戻り値がない場合、対応する新しい値の配列は空になります。
2. コールバック関数によって受け入れられるパラメータの数は、array_map() 関数に渡される配列の数と一致している必要があります。
3. ヒント: 関数には 1 つ以上の配列を入力できます。

位相関数が 2 つの配列を入力する場合、その関数は 2 つのパラメーターも受け入れる必要があります。map が関数に値を渡すとき、毎回 2 つの配列から 1 つを取り出し、それを関数
に渡します。つまり、複数の配列が同期的に送信されます。1 つの配列を送信してから次の配列を送信するのではなく、
複数の配列を送信する場合、関数には複数のパラメーターも必要です

4。構文: array array_map (callable #arr1 [, array $… ] )

例:

<?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));
?>

array_walk(): 1. array_walk - ユーザー定義関数を使用して、配列内の各要素に対してコールバック処理を実行します。
2. 構文: bool array_walk ( array &

funcname [,mixed $userdata = NULL ] )

パラメータ:

$array 入力配列。 $funcname コールバック関数。通常、$funcname は 2 つのパラメータを受け入れます。

$array パラメータの値が最初のパラメータとして使用され、キー名が 2 番目のパラメータとして使用されます。


$userdata オプションのパラメータ $userdata が指定されている場合、それは 3 番目のパラメータとして $funcname に渡されます。


注:

$funcname が配列内の値に直接作用する必要がある場合は、funcname の最初のパラメーターを参照として指定します (追加象徴 )。このようにして、

これらのセルを変更すると、元の配列自体も変更されます。

戻り値:

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。


#例:

<?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;);
上記のルーチンは次の出力を行います:

Before ...:
d. lemon
a. orange
b. banana
c. apple ... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

重要なポイント:

map は主に、コールバック関数によって処理された新しい配列を取得するためのもので、必要なのは結果です。


walk 重要なのは、パラメータごとにコールバック関数を 1 回ずつ使用することであり、重要なのは処理プロセスです。

walk はコールバック関数に追加のパラメーターを提供すると考えられますが、map はそれができません。

walk は主に配列内の各値を操作するものであり、操作結果は元の配列マップに影響します。 . 主に配列を操作することです 配列内の値を操作した後、配列を返して新しい配列を取得します

walk 配列を埋める必要があるため、値マップを返す必要はありません

おすすめ関連記事:

php の include() 関数と require() 関数の違いは何ですか?

PHP: 配列操作関数 array_walk() と array_map()


#php

における array_map、array_filter、array_walk の違い

以上がPHPのarray_map関数とarray_walk関数の使い方の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。