Убедитесь, что строка соответствует требуемому формату

Я пытаюсь проверить, следует ли строка следовать определенному формату, проверяя, что:

  • item[]= повторяется четыре раза
  • item[]= сопровождается номером и & символом (например, item[]=2& ), за исключением последнего номера, & после него
  • Числа после item[]= состоят только из 1-4 и могут быть в любом порядке, но не повторяться

Вот несколько примеров того, как будет выглядеть строка (как вы можете видеть, порядок изменения числа) – обратите внимание, что будет только одна строка за раз!

1)

 $list = 'item[]=1&item[]=3&item[]=2&item[]=4'; 

2)

 $list = 'item[]=3&item[]=1&item[]=4&item[]=2'; 

3)

 $list = 'item[]=4&item[]=3&item[]=2&item[]=1'; 

Вот как далеко у меня получилось:

 // check item[]= is repeated four times if(substr_count($list, "item[]=") == '4') { // strip the string to only numbers, then will need to check each number if between 1-4 $numbers = preg_replace("/[^0-9]/","",$list); // strip the string to only numbers and the character after it, will need to ensure it is & (except for the last number) preg_replace("/[^0-9]/","",$list + 1); }