私はアルファベットの配列を見つけて最後と最初の組み合わせをフェッチする配列を持っています。私はこのようなことをしようとしています。配列の最初と最後の一致する配列を見つける
$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