我试图通过检查:
来检查字符串是否遵循某种格式xPtr
重复四次item[]=
后跟一个数字和item[]=
符号(例如&
),但最后一个数字后面没有item[]=2&
&
之后的数字只包含1-4,可以按任何顺序排列,但不会重复以下是字符串外观的一些示例(如您所见,数字的顺序更改) - 请注意,一次只能有一个字符串!
1)
item[]=
2)
$list = 'item[]=1&item[]=3&item[]=2&item[]=4';
3)
$list = 'item[]=3&item[]=1&item[]=4&item[]=2';
这是我有多远:
$list = 'item[]=4&item[]=3&item[]=2&item[]=1';
答案 0 :(得分:1)
您可以使用:
$list = 'item[]=1&item[]=3&item[]=2&item[]=4';
$pattern = "/^(item\[\]=[1-4])(&(item\[\]=[1-4])){3}$/";
if (preg_match($pattern, $list)) {
// check for repetition
$matches = [];
preg_match_all("/\d+/", $list, $matches);
if (count(array_count_values($matches[0])) == 4) {
// All are unique values
echo 'All conditions met';
}
}