从PHP中的字符串中获取所有可能的子串最快的解决方案?

时间:2012-06-21 22:00:10

标签: php foreach increment substr

尝试获取目前所有子串的列表我有一个功能,但它还没有完全完成。我使用的最小字符为4.补充这一点的好方法是什么:

我还需要找到像“预测”这样的词,怎样才能做得最好,最快?

输出

Word:      predictions
Substring: predictions
Substring: redictions
Substring: edictions
Substring: dictions
Substring: ictions
Substring: ctions
Substring: tions
Substring: ions

1 个答案:

答案 0 :(得分:1)

以下将在同一循环中从的左右两侧创建一个子字符串修剪,长度为4。那是我理解的规范。

$length = strlen($word) - 4;
for ($i = 1; $i <= $length; ++$i) {
    echo "left = ", substr($word, $i), PHP_EOL;
    echo "right = ", substr($word, 0, -$i), PHP_EOL;
}

假设:通过表示子字符串

注意:我还添加了最小长度为4个字符的逻辑,并对for循环进行了微优化(静态限制和预先递增计数器)。