ホームページ >バックエンド開発 >PHPの問題 >PHP は 2 次元配列の共通部分の合計問題をどのように処理しますか?

PHP は 2 次元配列の共通部分の合計問題をどのように処理しますか?

PHPz
PHPzオリジナル
2023-04-23 09:17:56584ブラウズ

PHP プログラミングでは、配列を処理する場面によく遭遇しますが、その中でよく問題になるのが 2 次元配列の積部分の合計です。この記事では、PHP 言語を使用して 2 次元配列の積の総和問題を処理する方法を紹介します。

1. 2 次元配列とは何ですか?

2 次元配列とは、配列内の各要素自体が配列であり、各要素が独立したデータ項目を表すことを意味します。

たとえば、以下の 2 次元配列には 3 つのサブ配列が含まれており、各サブ配列には 3 つのデータ項目が含まれています。

$arr = array(

array(1,2,3),
array(4,5,6),
array(7,8,9)

)

2. 配列の交差とは何ですか?

配列の交差部分は、両方の配列に存在する要素で構成される新しい配列を指します。

たとえば、次の 2 つの配列:

$arr1 = array(1,3,5,7,9);
$arr2 = array(2,4,6, 8,9);

それらの交差は:

array(9)

3. 2 次元配列の交差を合計する方法

two -次元配列の交差の合計とは、2 つの 2 次元配列が与えられ、その各サブ配列に対して交差演算を実行し、すべてのサブ配列の交差値を加算して合計を求めることを意味します。

たとえば、次の 2 つの 2 次元配列:

$array1 = array(
array(1,2,3,4),
array(2,3) ,4 ,5),
array(3,4,5,6)
);

$array2 = array(
array(3,4,5,6),
array(5,6,7,8),
array(7,8,9,10)
);

交差の合計は次のコードで実装できます:

$sum = 0;
foreach ($array1 as $subarray1) { // 配列 1 の部分配列を走査します
foreach ($array2 as $subarray2) { // 配列 2 の部分配列を走査します

$intersect = array_intersect($subarray1, $subarray2); // 对子数组进行交集操作
if (!empty($intersect)) { // 如果交集不为空
  $sum += array_sum($intersect); // 将交集中的值相加
}

}
}
echo $sum; // 出力結果: 33

4. 例の説明

上記のコードは、配列 1 の項目を走査します。次に、配列 2 の各サブ配列をループし、それらに対して交差演算を実行し、交差の値を $sum 変数に追加します。

特定の実装では、array_intersect() 関数を使用して交差演算を実行します。交差が空でない場合は、array_sum() 関数を使用して交差に値を追加します。

array_intersect() 関数を使用する場合、2 つの部分配列の交差部分が空の場合、空の配列が返されることに注意してください。 !empty() 関数を使用して判断します。

5. まとめ

この記事では、PHP における 2 次元配列の交差総和の基本的な概念と実装方法を紹介します。配列の交差部分を使用します。この記事に関してご質問やご提案がございましたら、メッセージを残してください。

以上がPHP は 2 次元配列の共通部分の合計問題をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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