我有一个字符串数组,有时会形成重复的值模式(‘a’,’b’,’c’,’d’)
$array = array(
'a', 'b', 'c', 'd',
'a', 'b', 'c', 'd',
'c', 'd',
);
我想根据数组顺序找到重复的模式,并按相同顺序对它们进行分组(以保持它)。
$patterns = array(
array('number' => 2, 'values' => array('a', 'b', 'c', 'd')),
array('number' => 1, 'values' => array('c'))
array('number' => 1, 'values' => array('d'))
);
请注意,[a,b],[b,c],& [c,d]不是自己的模式,因为它们在较大的[a,b,c,d]模式中,最后一个[c,d]集只出现一次,所以它也不是一个模式 – c’和’d’
另一个例子:
$array = array(
'x', 'x', 'y', 'x', 'b', 'x', 'b', 'a'
//[.......] [.] [[......] [......]] [.]
);
产生
$patterns = array(
array('number' => 2, 'values' => array('x')),
array('number' => 1, 'values' => array('y')),
array('number' => 2, 'values' => array('x', 'b')),
array('number' => 1, 'values' => array('a'))
);
我该怎么做?