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;
}
?>
