PHP配列のセットを見つける方法

PHPz
リリース: 2023-04-23 16:11:32
オリジナル
461 人が閲覧しました

PHP プログラミング言語では、配列は最も一般的に使用されるデータ型の 1 つです。配列は、順序付けられた値のセットを格納でき、セット、スタック、キューなどのデータ構造を実装するために使用することもできます。この記事では、配列の重複排除、配列の結合、配列の交差演算、差分演算など、PHP 配列の集合演算について説明します。

  1. 配列の重複排除

実際の開発では、配列内の重複要素を削除する必要がある場合があります。 PHP には、この関数を実装するための組み込み関数 (array_unique() 関数など) がいくつか用意されています。ただし、この関数が連想配列を処理する場合、最後の重複したキーと値のペアが保持されます。したがって、重複排除操作を実装する独自の関数を作成できます:

function removeDuplicates($arr) {
  $output = array();
  foreach($arr as $value) {
    if(!in_array($value, $output)) {
      array_push($output, $value);
    }
  }
  return $output;
}
ログイン後にコピー

上記のコードでは、foreach ループを使用して配列を走査します。現在の値が出力に存在しないことが検出された場合は、配列を追加してください。この関数は、重複要素のない新しい配列を返します。

  1. 配列のマージ

実際の開発では、2 つ以上の配列を新しい配列にマージする必要がある場合があります。 PHP には、組み込み関数 array_merge()、array_replace()、array_merge_recursive() およびこの関数を実装できるその他の関数が用意されています。これらの関数の使用方法を見てみましょう:

// array_merge()函数
$arr1 = array('apple', 'banana', 'orange');
$arr2 = array('pear', 'grape', 'watermelon');
$newArr = array_merge($arr1, $arr2); // 输出:apple, banana, orange, pear, grape, watermelon

// array_replace()函数
$arr1 = array('apple' => 1, 'banana' => 2);
$arr2 = array('orange' => 3, 'banana' => 4);
$newArr = array_replace($arr1, $arr2); // 输出:apple => 1, banana => 4, orange => 3

// array_merge_recursive()函数
$arr1 = array('apple' => 1, 'banana' => 2);
$arr2 = array('orange' => 3, 'banana' => array('x', 'y'));
$newArr = array_merge_recursive($arr1, $arr2); // 输出:apple => 1, banana => [2, ['x', 'y']], orange => 3
ログイン後にコピー

さまざまな配列結合関数を使用する場合は、それらの違いと使用法に注意する必要があります。

  1. 配列の交差部分

実際の開発では、2 つ以上の配列の交差部分を取得する必要がある場合があります。つまり、配列間で共通の要素のみを保持する必要があります。 PHP には、組み込み関数 array_intersect()、array_intersect_assoc()、array_uintersect() およびこの関数を実装するその他の関数が用意されています。これらの関数の使用法を見てみましょう:

// array_intersect()函数
$arr1 = array('apple', 'banana', 'orange');
$arr2 = array('pear', 'banana', 'watermelon');
$newArr = array_intersect($arr1, $arr2); // 输出:banana

// array_intersect_assoc()函数
$arr1 = array('apple' => 1, 'banana' => 2, 'orange' => 3);
$arr2 = array('pear' => 4, 'banana' => 5, 'watermelon' => 6);
$newArr = array_intersect_assoc($arr1, $arr2); // 输出:banana => 2

// array_uintersect()函数
function compare($a, $b) {
  if($a === $b) {
    return 0;
  }
  else {
    return ($a > $b ? 1 : -1);
  }
}
$arr1 = array('apple', 'banana', 'orange');
$arr2 = array('pear', 'banana', 'watermelon');
$newArr = array_uintersect($arr1, $arr2, 'compare'); // 输出:banana
ログイン後にコピー

さまざまな配列交差関数を使用する場合は、それらの違いと使用法に注意する必要があります。

  1. 配列差分セット

実際の開発では、2 つ以上の配列の差分セットを取得する必要がある場合があります。つまり、最初の配列から 2 番目の配列を削除する必要があります。配列に現れる要素。 PHP には、組み込み関数 array_diff()、array_diff_assoc()、array_udiff() およびこの関数を実装するその他の関数が用意されています。これらの関数の使用法を見てみましょう:

// array_diff()函数
$arr1 = array('apple', 'banana', 'orange');
$arr2 = array('pear', 'banana', 'watermelon');
$newArr = array_diff($arr1, $arr2); // 输出:apple, orange

// array_diff_assoc()函数
$arr1 = array('apple' => 1, 'banana' => 2, 'orange' => 3);
$arr2 = array('pear' => 4, 'banana' => 5, 'watermelon' => 6);
$newArr = array_diff_assoc($arr1, $arr2); // 输出:apple => 1, banana => 2, orange => 3

// array_udiff()函数
function compare($a, $b) {
  if($a === $b) {
    return 0;
  }
  else {
    return ($a > $b ? 1 : -1);
  }
}
$arr1 = array('apple', 'banana', 'orange');
$arr2 = array('pear', 'banana', 'watermelon');
$newArr = array_udiff($arr1, $arr2, 'compare'); // 输出:apple, orange
ログイン後にコピー

さまざまな配列差分関数を使用する場合は、それらの違いと使用法に注意する必要があります。

概要

PHP プログラミングでは、配列は最も一般的に使用されるデータ型の 1 つです。いくつかの組み込み関数を使用するか、独自の関数を作成することで、重複排除、マージ、交差、差分などのさまざまな操作を PHP 配列に簡単に実装できます。実際の開発では、より良い結果を得るために、特定のシナリオに応じてこれらの操作を柔軟に使用する必要があります。

以上がPHP配列のセットを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート