Справка PHP по регулярным выражениям, если она не равна - PullRequest
1 голос
/ 11 июля 2010

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

Продаю одежду и аксессуары. В моем файле инвентаря есть поле с именем ProductDepartment, которое представляет собой комбинацию пола / типа элемента. У меня есть таблица MySQL для пола со следующими значениями:

Mens = 1
Womens = 2
Unisex = 3

Отделы в загруженном файле выглядят, например, следующим образом.

Mens Outerwear
Mens Watches
Womens Jeans
Headphones

Таким образом, в основном я пытаюсь сделать следующее: если $ ProductDept содержит Mens, установите $ sex_id = 1, если $ ProductDept содержит Womens, установите $ sex_id = 2, если $ ProductDept не содержит ни того, ни другого, установите $ sex_id = 3

И мне трудно понять, как правильно написать 3-е утверждение if. Вот что у меня есть.

if(preg_match('/Mens/g', $ProductDept)) {
    $gender_id = '1';
}

if(preg_match('/Womens/g', $ProductDept)) {
    $gender_id = '2';
}

if( != preg_match('/Mens|Womens/g', $ProductDept)) {
    $gender_id = '3';
}

Ответы [ 2 ]

3 голосов
/ 11 июля 2010

Изменить != на !:

if (!preg_match('/Mens|Womens/g', $ProductDept)) { ... } 

Вы также можете переписать его, используя elseif следующим образом:

if (preg_match('/Womens/g', $ProductDept)) {
    $gender_id = '2';
} elseif (preg_match('/Mens/g', $ProductDept)) {
    $gender_id = '1';
} else {
    $gender_id = '3';
}
1 голос
/ 11 июля 2010

Я сделаю:

if(preg_match('/Womens/', $ProductDept)) {
  $gender_id = '2';
} elseif(preg_match('/Mens/', $ProductDept)) {
  $gender_id = '1';
} else {
  $gender_id = '3';
}
...