I want to compare two indexed arrays as such that values will be same for two arrays but order may differ, for example i tried doing this but it simply doesn’t work.
Example 1 :
$a = array(1,2,3,4,5);
$b = array(1,2,3,5,4);
echo ($a == $b) ? 'Match Found' : 'No Match Found';
//Returns No Match Found
Example 2 : (tried sorting the array but it doesn’t sort)
$a = array(1,2,3,4,5);
$a = sort($a);
$b = array(1,2,3,5,4);
$b = sort($b);
echo ($a === $b) ? 'Match Found' : 'No Match Found';
//Returns Match Found
above example returns match Found and that is because sort() returns 1 if i try sorting indexed array, and both $a and $b contains 1 after sorting resulting in condition being true which is totally wrong, this trick does not seems to work either, i tried with many different sorting function like asort(), arsort() etc, but none seems to work.
what is the workaround for this?
thank you
Instead of comparing the return values of
sort, why don’t you just compare the arrays after they have been sorted?If the arrays have different keys but the same values, they will still count as equal. You must also compare the array keys if this is an issue.