我有一個數組來查找字母序列,然後獲取最後一個和第一個組合。我正在嘗試這樣的事情。查找數組中的第一個和最後一個匹配序列php
$aarr = ['x','y','z','t','m','n','x','y','z'];
$str = implode('',$aarr);
$all_subset = powerSet($aarr);
foreach ($all_subset as $set) {
$sre_temp = implode('', $set);
$tru = hasOrderedCharactersForward($sre_temp);
if($tru){
echo $sre_temp.'<br>';
}
}
function powerSet($array) {
// add the empty set
$results = array(array());
foreach ($array as $element) {
foreach ($results as $combination) {
$results[] = array_merge(array($element), $combination);
}
}
return $results;
}
function hasOrderedCharactersForward($str, $i = 2) {
$alpha = 'abcdefghijklmnopqrstuvwxyz';
$len = strlen($str);
for($j=0; $j <= $len - $i; $j++){
if(strrpos($alpha, substr($str, $j, $i)) !== false){
return true;
}
}
return false;
}
我覺得powerSet()
工作不一樣,我認爲。即使它應該顯示'xyz'的組合,但它不是;
所以你希望'xyz'作爲這個例子中的第一個和最後一個結果? – JustOnUnderMillions