我有一个包含字符串的$ test数组。我还有两个函数,replaceOverlap合并两个重叠的字符串和findNested,它找到两个字符串中的一个是另一个字符串的子字符串。代码是PHP
我想要做的是迭代$ test数组并取出每个元素($表位)并将其与数组中其余的$表位进行比较,因为还有一些规则在算法。问题是,如果我只想打印在$ test数组的其余部分找到的最大重叠嵌套字符串,然后从数组中删除那些已合并的字符串。这是我到目前为止的代码。任何帮助将非常感激。
$test=array(AVNIVGYSNAQGVDY,DIKYTWNVPKI,DIKYTWNVPKIA,DIKYTWNVPKIAPKSEN,GCHGSEPCIIHRGK,IDGLEVDVPGIDPNAC,IGIKDLRAFQHYDGRTI,IIHRGKPFQLEAV,IKYTWNVPKIAPKSEN,KPFQLEAVFEANQNT,LRQMRTVTPIRMQGG,NFLESLKYVEANKGAIN,PCIIHRGKPFQLEAV,PLVKGQQYDIKYTWNVP,QQYDIKYTWNVPKI,QQYDIKYTWNVPKIA,QQYDIKYTWNVPKIAP,QQYDIKYTWNVPKIAPK,QQYDIKYTWNVPKIAPKS,QQYDIKYTWNVPKIAPKSE,QQYDIKYTWNVPKIAPKSEN,QYDIKYTWNVPK,QYDIKYTWNVPKI,QYDIKYTWNVPKIAPKS,QYDIKYTWNVPKIAPKSEN,RFGISNYCQIYPPNV,SAYLAHRNQSLDLAEQELVDCAS,TAIAVIIGIKDLRAFQH,TWNVPKIAPKSENVVVT,YAYVAREQSCR,YDIKYTWNVPK,YDIKYTWNVPKI,YDIKYTWNVPKIA,YDIKYTWNVPKIAPKSEN);
$i=0;
foreach ($test as $epitope){
$str1=$epitope;
for ($j = $i; $j < count($test); ++$j) {
$str2=$test[$j];
$value1 = replaceOverlap($str1,$str2);
$value2 = replaceOverlap($str2,$str1);
$value3 = findNested($str1,$str2);
if (replaceOverlap($str1,$str2)!=false){
array_splice($test[$j]);
print $value1;echo"</br>";
}
elseif (replaceOverlap($str2,$str1)!=false){
array_splice($test[$j]);
print $value2;echo"</br>";
}
elseif (findNested($str1,$str2)!=false){
array_splice($test[$j]);
print $value3;echo"</br>";
}
}
$i=$i+1;
}