Полное и частичное сопоставление множеств - PullRequest
1 голос
/ 15 марта 2011

У меня есть несколько наборов одного типа [Y, M, D], и я пытаюсь написать функцию для поиска этих наборов и возвращения массива доступных наборов, которые соответствуют моим параметрам.

ReturnedSets =return_matches (Y, M, D);

Я хочу, чтобы три параметра функции return_matches были необязательными.Это означает, что любая комбинация значений может быть использована для возврата наборов.

Например, можно написать - return_matches (13, null, 2);- и функция будет искать все наборы, которые содержат [13, anyValue, 2];

Я пишу это на PHP, чтобы позволить пользователям управлять датированными файлами на моем сайте, но я бы хотелиметь возможность использовать эту функцию снова для других целей.

Спасибо!

edit: (Это, или вариации этого, это все, что я могу придумать до сих пор ... Есть кое-что еще, что я не понимаю, потому что эта функциязаканчивается / не будет работать, чтобы вернуть наборы, которые содержат y и d, но оставляя m произвольным.

if(y == s[0]){

        if(m == s[1]){

            if(d == s[2]){

                print "day match";

                }

            } else {print "month match";}

        } else {print "year match";}

    } else {print "no match";}

1 Ответ

0 голосов
/ 22 августа 2011

Прошло очень много времени с тех пор, как я написал что-то на php, поэтому я предложу вам в псевдокод , что у меня на уме:

$ReturnedSets = array();
   if( (!isset y) or == s[0]) {
      if( (!isset m) or == s[1]) {
         if( (!isset d) or == s[2]) {
                 $ReturnedSets[] = s;
         } else {print "month match";}
         } else {print "year match";}
   } else {print "no match";}
return $ReturnedSets;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...