Version: 1.0
Type: Function
Category: Algorithms
License: GNU General Public License
Description: This function will allow you to get all the differences in multiple arrays (up to 3 arrays). Inspired by Phence (on the forums), this will return an array filled with all the differences between all the arrays, not just the first.
<?php
/*
Use in this fasion:
$dif = diff_array($array1, $array2 [, $array3]);
The third array is optional.
*/
function diff_array($array1, $array2, $array3=NULL)
{
$ar3 = (is_array($array3))?TRUE:FALSE;
foreach($array1 as $a1)
{
if(!in_array($a1, $array2))
{
$differences[] = $a1;
}
}
foreach($array2 as $a2)
{
if(!in_array($a2, $array1))
{
if(!in_array($a2, $differences))
{
$differences[] = $a2;
}
}
}
if($ar3)
{
$array4 = array_merge_recursive($array1, $array2);
foreach($array3 as $a3)
{
if(!in_array($a3, $array4))
{
if(!in_array($a3, $differences))
{
$differences[] = $a3;
}
}
}
}
return $differences;
}
?>