/** * 获取最终关键字(返回用 "," 间隔的关键字) * * @return string */ public function getFinallyKeywords($num = 10) { $n = 0; // 获取索引hash数组 $arr = []; foreach ($this->finallyResult as $v) { if ($this->resultType == 2 && ($v['t'] == 3 || $v['t'] == 5)) { continue; } $w = StringTool::encoding($v['w'], $this->targetCharSet); if ($w == ' ') { continue; } if (isset($arr[$w])) { $arr[$w]++; } else { $arr[$w] = 1; } } arsort($arr); $finallyString = ''; foreach ($arr as $k => $v) { //排除长度为1的词 if (strlen($k) == 1) { continue; } elseif (strlen($k) == 2 && preg_match('/[^0-9a-zA-Z]/', $k)) { continue; } elseif (strlen($k) < 4 && !preg_match('/[a-zA-Z]/', $k)) { continue; } $finallyString .= $finallyString == '' ? $k : ',' . $k; $n++; if ($n > $num) { break; } } return $finallyString; }