PHP 生成 Trie 树

将所有敏感词生成 Trie 树结构,便于做敏感词检测,生成代码如下

class TrieNode
{

    private static $TrieTree;

    public function __construct()
    {
        static::$TrieTree = [];
    }

    public function insert($sensWords): TrieNode
    {
        $words = preg_split(‘//u‘,$sensWords,-1,PREG_SPLIT_NO_EMPTY);
        $_tree =  &static::$TrieTree;
        foreach ($words as $key => $_word) {
            if (!isset($_tree[$_word])) {
                $_tree[$_word] = [
                    ‘isEnd‘ => !isset($words[$key + 1]),‘child‘ => []
                ];
            }
            $_tree = &$_tree[$_word][‘child‘];
        }
        return $this;
    }

    public function getTree()
    {
        return static::$TrieTree;
    }
}

$treeNode = (new TrieNode)->insert(‘CNM‘)->insert(‘MLGB‘)->insert(‘WRNM‘)->getTree();
echo json_encode($treeNode,JSON_UNESCAPED_UNICODE);

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...