ホームページ  >  記事  >  バックエンド開発  >  PHP で array_map、array_walk、array_filter を使用する場合は?

PHP で array_map、array_walk、array_filter を使用する場合は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 09:52:02867ブラウズ

 When to Use array_map, array_walk, and array_filter in PHP?

array_map、array_walk、array_filter の違いの説明

PHP の配列関数は、配列を操作する便利な方法を提供します。このうち、array_map、array_walk、array_filter がよく使われます。これらには類似点がありますが、動作には重要な違いがあります。

機能の概要

  • array_map: それぞれにコールバック関数を適用します。配列の要素を取得し、結果を含む新しい配列を返します。
  • array_walk: コールバック関数を配列の各要素に適用し、元の配列をその場で更新します。
  • array_filter: コールバック関数に基づいて配列から要素を削除し、条件を満たした要素のみを含む新しい配列を返します。

主な違い

  • 配列の変更: array_walk は元の配列を変更しますが、array_map は変更しません。
  • キー アクセス: array_walk はアクセスを許可します
  • 戻り値: array_map は新しい配列を返しますが、array_walk は true を返します。 array_filter も新しい配列を返しますが、フィルターされた要素のみが含まれます。
  • 反復: array_map は複数の配列を同時に反復できますが、array_walk は 1 つの配列のみ反復します。
  • 任意のデータの受け渡し: array_walk は、コールバックに渡す追加パラメーター (PHP 5.3 で導入されたオプション) を受け入れることができます。
  • 返される配列の長さ: array_map の結果の配列は、最大の入力配列の長さになりますが、array_walk の配列の長さは変わりません。 array_filter は、フィルタリングされた要素の長さに一致する配列を返します。

具体的な例

<code class="php">$a = [2.4, 2.6, 3.5];

// array_map
$b = array_map('floor', $a); // $a remains unchanged
print_r($b); // Output: [2, 2, 3]

// array_walk
array_walk($a, 'floor'); // Modifies $a
print_r($a); // Output: [2, 2, 3]

// array_filter
$c = array_filter($a, fn($v) => $v > 2.5); // Filter elements
print_r($c); // Output: [2.6, 3.5]</code>

結論として、array_map、array_walk、および array_filter はそれぞれ次のものを持ちます。配列操作における特定の役割。それらの違いを理解することで、開発者はタスクに最適な関数を選択できるようになります。

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

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