ホームページ >バックエンド開発 >PHPチュートリアル >PHP関数ライブラリのarray_map()関数の使い方を詳しく解説

PHP関数ライブラリのarray_map()関数の使い方を詳しく解説

WBOY
WBOYオリジナル
2023-06-27 10:03:104833ブラウズ

PHP 開発では、配列は最も一般的に使用されるデータ型の 1 つです。配列の演算関数も充実しています。その中でもarray_map()関数は非常に実用的な配列演算関数で、配列の各要素に関数を適用して新しい配列を返すことができます。

この記事では、array_map()関数の使い方と注意点を中心に、例を交えて紹介します。

1. array_map() 関数の概要

array_map() 関数は、最初のパラメーター (PHP 関数) を受信配列の各要素に適用することです。関数は新しい配列の要素として返されます。たとえば、array_map()関数を使用すると、配列値の乗算や、配列値をある程度変更したり、得られた結果を変換したりすることができます。

array_map() 関数の基本構文は次のとおりです。

array array_map ( callable $callback , array $array1 [, array $...] )

このうち、$callback パラメータは、それぞれに対してコールバック メソッドを作成することを示します。 element, $array1 パラメータは、処理される配列を表します。複数の配列を使用できるため、関数に渡されるパラメータの数に応じて、コールバック メソッドで複数のパラメータを渡すことができます。また、コールバック メソッドを null に設定して、array_map() 関数が渡された配列の各要素を新しい配列に直接返すようにすることもできます。

2. array_map() 関数のデモ例

次に、いくつかの例を通して array_map() 関数の使用法を示します。

  1. 配列内のすべての要素を 2 倍にする
<?php
function double($value){
    return $value*2;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("double", $a);
print_r($b);
?>

出力結果:

Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )

上記のコードでは、コールバック関数 double () を定義します。この関数の機能は、入力値を 2 倍にすることです。次に、1 から 5 までの数字を含む配列 $a を作成します。次に、array_map() 関数を呼び出し、配列 $a とコールバック関数 "double" を渡すことで、新しい配列 $b を取得します。ここで、各要素は元の要素です。配列を 2 回実行します。

  1. 2 つの配列の要素を 1 つの配列に結合します
<?php
function combine($a, $b){
    return $a . $b;
}
$a = array("a", "b", "c", "d");
$b = array("1", "2", "3", "4");
$combine = array_map("combine", $a, $b);
print_r($combine);
?>

出力結果:

Array ( [0] => a1 [1] => b2 [2] => c3 [3] => d4 )

この例では、コールバック関数 combin () を定義します。 、この関数の機能は、2 つの受信値を新しい文字列に結合することです。次に、同じキー名で異なる値を格納する 2 つの配列 $a$b を作成しました。次に、 array_map() 関数を呼び出し、2 つの配列 $a$b およびコールバック関数 "combine" $combine を渡して、新しい配列を作成します。

  1. 配列内の空の要素を削除します
<?php
function removeEmpty($value){
    return trim($value);
}
$array= array("hello", " ", "world", "", "!");
$no_empty = array_filter(array_map("removeEmpty", $array));
var_dump($no_empty); 
?>

出力結果:

array(3) { [0]=> string(5) "hello" [2]=> string(5) "world" [4]=> string(1) "!" }

上記のコードでは、コールバック関数removeEmpty()を定義しました。この関数の機能は、文字列からスペースを削除することです。次に、いくつかの空の要素を含む配列 $array を作成します。 array_map("removeEmpty", $array) 関数を使用すると、コールバック関数 removeEmpty() を作成し、配列内の各要素を処理のためにコールバック関数に渡すことができます。最後に、array_filter() 関数を使用して空の要素を除外します。 $no_empty 配列が取得されます。これには、空の要素を削除した後の元の配列内のすべての要素が含まれます。

3. array_map() 関数に関する注意事項

array_map() 関数を正しく使用するには、次の点に留意する必要があります:

  1. パラメータコールバック関数に渡されます。値は各配列の CURRENT (現在の) 要素であり、値は呼び出しループ中に変化します。 array_map() 関数に非配列が渡された場合、その値は個別にコールバック関数に渡されます。
  2. ユーザーはコールバック関数をカスタマイズできます。 PHP 組み込み関数またはカスタム関数を使用できます。
  3. 匿名関数を array_map() 関数に渡す必要がある場合は、PHP 5.3 以降を使用する必要があります。
  4. array_map() 関数は、配列の開始インデックス値に影響されます。たとえば、2 つの配列が異なるキー名で渡された場合、小さい方のキー名が返される配列の構築に使用されます。
  5. パラメータ配列内のキーと値をコールバック関数で使用する場合は、array_map() 関数を使用せず、foreach ループを使用して操作する必要があります。

4. まとめ

この記事では、array_map()関数の定義、使い方、注意点について詳しく紹介します。 array_map() 関数は非常に実用的な配列処理関数で、配列内の各要素に関数を適用し、関数によって処理された各要素の結果を新しい配列に返すことができます。 array_map() 関数を合理的に適用すると、PHP 配列操作のプロセスが大幅に簡素化され、プログラマが配列をより便利かつ効率的に処理できるようになります。

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

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