我有一個數組幾個嘰嘰喳喳的鳴叫的話,你想刪除這個數組,其中包含下列單詞之一的所有微博黑名單項目| blackwords | somemorePHP - >刪除陣列包含從黑名單
誰可以幫我解決這個案子?
我有一個數組幾個嘰嘰喳喳的鳴叫的話,你想刪除這個數組,其中包含下列單詞之一的所有微博黑名單項目| blackwords | somemorePHP - >刪除陣列包含從黑名單
誰可以幫我解決這個案子?
這裏有一個建議:
<?php
$banned_words = 'blacklist|blackwords|somemore';
$tweets = array('A normal tweet', 'This tweet uses blackwords');
$blacklist = explode('|', $banned_words);
// Check each tweet
foreach ($tweets as $key => $text)
{
// Search the tweet for each banned word
foreach ($blacklist as $badword)
{
if (stristr($text, $badword))
{
// Remove the offending tweet from the array
unset($tweets[$key]);
}
}
}
?>
你可以做到這一點在很多方面,所以沒有更多的信息,我可以給這個真的開始代碼:
$a = Array(" fafsblacklist hello hello", "white goodbye", "howdy?!!");
$clean = Array();
$blacklist = '/(blacklist|blackwords|somemore)/';
foreach($a as $i) {
if(!preg_match($blacklist, $i)) {
$clean[] = $i;
}
}
var_dump($clean);
使用正則表達式:
preg_grep($array,"/blacklist|blackwords|somemore/",PREG_GREP_INVERT)
但我警告你,這可能是無用的,你必須照顧黑名單中的標點符號。
可以使用array_filter()功能:
$badwords = ... // initialize badwords array here
function filter($text)
{
global $badwords;
foreach ($badwords as $word) {
return strpos($text, $word) === false;
}
}
$result = array_filter($tweetsArray, "filter");
檢查該樣本
$tweets = array();
function safe($tweet) {
$badwords = array('foo', 'bar');
foreach ($badwords as $word) {
if (strpos($tweet, $word) !== false) {
// Baaaad
return false;
}
}
// OK
return true;
}
$safe_tweets = array_filter($tweets, 'safe'));
您可以顯示一些你已經測試的代碼或試圖使用?如何使用推文發佈數組格式?可能是有用的 – 2011-01-07 18:10:57
黑名單|黑名單有多存儲?數據庫,數組,文件... – maid450 2011-01-07 18:17:11
不知道數組的格式和黑名單的格式,這個問題很難回答。 – mfonda 2011-01-07 18:19:31