array_diff() returns an array containing all the values of array1 that are not present in any of the other arguments. Note that keys are preserved.
This makes $result have array ("blue");. Multiple occurrences in $array1 are all treated the same way.
Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.
Note: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_diff($array1, $array2);.
This was broken in PHP 4.0.4!
See also array_intersect().