It seems that every PHP function I read about for comparing arrays (array_diff(), array_intersect(), etc) compares for the existence of array elements.
Given two multidimensional arrays with identical structure, how would you list the differences in values?
[User1] => Array ([public] => 1
[private] => 1
[secret] => 1
)
[User2] => Array ([public] => 1
[private] => 0
[secret] => 0
)
[User1] => Array ([public] => 1
[private] => 0
[secret] => 1
)
[User2] => Array ([public] => 1
[private] => 0
[secret] => 0
)
[User1] => Array ([public] => 1
[private] => 0 //this value is different
[secret] => 1
)
So my result would be - "Of all the users, User1 has changed, and the difference is that private is 0 instead of 1."
One way is to write a function to do something similar to this..
function compareArray ($array1, $array2)
{
foreach ($array1 as $key => $value)
{
if ($array2[$key] != $value)
{
return false;
}
}
return true;
}
You could easily augment that function to return an array of differences in the two..
Edit - Here's a refined version that more closely resembles what you're looking for:
function compareArray ($array1, $array2)
{
var $differences;
foreach ($array1 as $key => $value)
{
if ($array2[$key] != $value)
{
$differences[$key][1] = $value;
$differences[$key][2] = $array2[$key];
}
}
if (sizeof($differences) > 0)
{
return $differences;
}
else
{
return true;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With