php array_map vs array_walk ケーススタディ
2022-01-15 18:52:54
array_map()です。
1. array_map() 関数は、配列の各値にユーザ定義関数を適用し、ユーザ定義関数適用後の新しい値を配列に格納して返します。
2. コールバック関数が受け取る引数の数は、array_map()関数に渡される配列の数と同じである必要があります。
3. ヒント:関数に1つ以上の配列を入力することができます。
If the phase function inputs two arrays, the function should also accept two parameters, map to the function to pass the value, is each time from two arrays to take one to pass the function.
The function is passed one at a time. That is, multiple arrays are submitted synchronously, not after submitting an array and then submit the next
If you submit several arrays, the function should also have several arguments
4. 構文: array array_map ( callable callback,array arr1 [, array $...] )
インスタンスです。
<?php
// single array form
function myfunction($v)
{
if ($v==="Dog")
{
return "Fido";
}
return $v;
}
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
//multiple arrays
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 & array,呼び出し可能なfuncname [, mixed $userdata = NULL ] )
パラメータ
The $array input array.
The $funcname callback function, typically $funcname accepts two parameters. The value of the $array argument is the first, and the key name is the second.
$userdata, if supplied with the optional $userdata parameter, is passed to $funcname as the third argument.
注
If $funcname needs to act directly on values in an array, specify the first argument to funcname as a reference (add the & symbol). This way
Any changes to these cells will also change the original array itself.
戻り値:
Returns TRUE on success, or FALSE on failure.
インスタンスです。
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", " c" => "apple");
// pass a reference, changing the set of parameters passed
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}
echo "Before ... :\n";
// single array
array_walk($fruits, 'test_print');
//with extra arguments
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
上記のルーチンが出力されます。
以前は ... ..:
d. レモン
a. オレンジ
b. バナナ
c. リンゴ
...後
d. 果物:レモン
a. 果物:オレンジ
b. 果物:バナナ
c. 果物:りんご
キーポイント
map is mainly to get the new array after your callback function has processed it, to get the result.
walk is mainly to use your callback function once for each argument, to get the process.
walk can be considered as providing additional arguments to the callback function, map cannot
walk is mainly to operate on each value in the array, and the result of the operation affects the original array
map mainly operates on the values in the array and then returns the array to get a new array
walk can have no return value map should have one, because the array has to be filled
<リンク php array_mapとarray_walkの事例を紹介する記事です。php array_mapとarray_walkについては、スクリプトハウスの過去記事を検索するか、引き続き以下の記事を閲覧してください。
関連
-
php の双方向キューの例
-
phpでオブジェクトのメンバーにアクセスする方法の例
-
ファイルアップロードの脆弱性とバイパス技術を使用したphpセキュリティ攻撃の詳細
-
web php include 攻撃と防御 世界のphp セキュリティ 例 詳細
-
phpでファイルをコピーした後にファイル名を変更するコード例
-
PHPのrequire_once()関数がうまく機能しない理由の話
-
PHPのdie()関数とsleep()関数の使い方の話
-
phpにおけるintval()の使用例
-
php array_walk array_map array_filter 差分ケーススタディ
-
PHPで配列をトラバースする6つの方法まとめ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン