public static function getDifferingMembersFormattedString($object1, $object2, $formatString, $separator, $displayMemberKeys = array(), $recursive = false) {

        // Get the differing members
        $differingMembers = ObjectUtils::getDifferingMembers($object1, $object2, array_keys($displayMemberKeys), $recursive);

        // Loop through each differing member
        $elements = array();
        foreach ($differingMembers as $member => $data) {
            $elements[] = str_replace(array("{member}", "{first}", "{second}"), array(
                isset($displayMemberKeys[$member]) ? $displayMemberKeys[$member] : $member,
                $data["first"], $data["second"]), $formatString);
        }

        return join($separator, $elements);

    }