Дополнение двух списков?

скажем, у меня есть список строк:

A, B, C, D

Затем еще один список строк

B, C, D

Я хочу знать, какие элементы находятся в первом списке, но не во втором списке, чтобы результат be A

Я не знаю, как это сделать. Я знаю, что могу использовать concat, union, пересечение для аналогичных сравнений списков, но просто не знаю имени для выполнения этой конкретной задачи.

Приложение, меня интересуют дубликаты, поэтому, если первый список будет:

A, A, A, B, C, D

, а второй список -

B, C, {частный $ v = массив (); function ...

Интересно, можно ли сделать что-то вроде следующего (я знаю, что код не будет работать так, как задумано, просто пытаюсь донести цель):

class Form
{
    private $v = array();

    function __set($varName, $varValue)
    {
        ... do some treatment on the varValue ...
        $this->v[$varName] = $varValue;
    }

    function &__get($varName)
    {
        if(!isset($this->v[$varName]))
            $this->v[$varName] = NULL;

        return $this->v[$varName];
    }
};

Я хочу иметь возможность установить переменную например:

$ form-> Values ​​['something'] = 'dirty';

и пусть он будет запущен через функцию установки, которая вызовет некоторые операции очистки и фактически заполнит еще пару массивов, таких как 'HtmlValues' и 'SqlValues', чтобы я мог просто вытащить значения, закодированные для нужного мне формата, чтобы позже я мог вызвать

echo $ form-> HtmlValues ​​['any'];

Проблема, конечно же, обычная проблема: если вы просто используете _ get, вы получите значение, которое возвращается, и даже если & _get возвращает его по ссылке и что-то вроде работы, Оба ...

Я работаю над модулем аутентификации на базе MongoDB для моего приложения asp.net. В базе данных MongoDB есть коллекции пользователей, в которых я храню информацию для входа - имя пользователя, адрес электронной почты и пароль. И имя пользователя, и адрес электронной почты настроены как уникальные:

users.ensureIndex({email:1}, {unique:1})
users.ensureIndex({uname:1}, {unique:1})

Теперь, если я попытаюсь вставить запись с существующим uname или адресом электронной почты, я получу исключение MongoDB:

Safemode detected an error: E11000 duplicate key error index: 
authdb.users.$email_1  dup key: { : "test@test.com" } 
(response: { "err" : "E11000 duplicate key error index: authdb.users.$email_1  
dup key: { : \"test@test.com\" }", "code" : 11000, "n" : 0, "connectionId" : 9, 
"ok" : 1.0 })

Мне нужно сообщить пользователю, что имя пользователя или адрес электронной почты, которые они ввели уже существует, но все исключение представляет собой просто кусок текста, и чтобы увидеть, что происходит, я должен угадать, посмотрев, есть ли «$ email» или «$ uname» в тексте сообщения об ошибке. Есть ли какой-нибудь синтаксический анализатор исключений MongoDB, который помог бы мне определить причину исключения?

8
задан Andrey 9 May 2011 в 16:24
поделиться