PHP 重複した値を算出する

PHP

PHP 重複した値を算出する

PHPのサンプルコードでよいものを見つけたので、書いておきます。

出典:http://www.php.net/manual/ja/function.array-intersect.php

2つの配列の、重複した値を見つけるのは、array_intersectなどを使えばできますが、これが動的に出力される配列だったり、配列の長さが事前にわからない場合、利用しにくいです。
そんな時、次のように配列を比較すると、重複する値を出してくれます。
それぞれの配列の中には、重複する値がないことが前提です。

faharanikさんに感謝!

 <?php
 // $arrays - Array of arrays to intersect.
 
 function calculate_intersection($arrays)
    {
    $intersection = Array();
               
    for($checked_item = 0; $checked_item < count($arrays[0]); $checked_item++)
        {
        $occurrence = 1;
       
        for($compared_array = 1; $compared_array < count($arrays); $compared_array++)
            {           
            for($compared_item = 0; $compared_item < count($arrays[$compared_array]); $compared_item++)
                {
                if($arrays[0][$checked_item] == $arrays[$compared_array][$compared_item])
                    {
                    $occurrence++;
 
                    if($occurrence == count($arrays))
                        {
                        $intersection[] = $arrays[0][$checked_item];
                        }
                    }
                }
            }
        }
   
    return $intersection;
    }
 ?>
カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です