array_intersect() returns an array containing all the values of array1 that are present in all the arguments. Note that keys are preserved.
This makes $result have array ("a" => "green", "red");
Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.
This was broken in PHP 4.0.4!
See also array_diff().