我想创建一个带有输入字段的简单搜索功能,用户可以在其中通过标签搜索存储在数据库中的消息。
问题是该函数返回所有消息,而不是标签匹配的消息。
这是我的尝试:
public function getMatches($tagsGiven) {
$mergedTagArray = array();
$messageToTag = array();
$messageRepo = $this->messageRepository->findAll(); // all messages from DB
$messageTagsArray = explode(',', $tagsGiven); // tags given by the user
foreach ($messageRepo as $oMessage) {
$messageTag = $oMessage->getMessageTags(); // get tags from all messages
$storeTagsUnseri = unserialize($messageTag); // unserialize tags given by the user
if (!in_array($messageTagsArray,$storeTagsUnseri)) { //if tags from user matches tags from DB messages
$messageToTag[] = $oMessage->getMessageText(); // get the message text from the DB message and store it in array
}
}
return $messageToTag; // return all message texts matching
}
}
非常感谢!
此致
编辑
if (array_intersect($messageTagsArray,$storeTagsUnseri)) {}
那成功了。