2012-11-21 41 views
-4

我想檢查進入的數據到database.Checks如下如何通過數組相交檢查數據的編碼?

$implode1 = "apple, orange, banana"; 

$implode2 = "banana, mango"; 

如果變量$implode1香蕉也包含在變量$implode2,它應該顯示一個警告消息。 ,如果變量的值爲空,則執行將被忽略。例如:

$implode1 = ""; 

$implode2 = ""; 

如何編寫上述問題?

請幫助我:(

+0

什麼期待什麼? 4個答案,他沒有贊成或接受他們中的任何一個...... –

回答

0
$implode1 = "apple, orange, banana"; 
$implode2 = "banana, mango"; 

$implode1Array = explode(", ", $implode1); 
$implode2Array = explode(", ", $implode2); 

$result = array_intersect($implode1Array, $implode2Array); 

if(count($result) > 0) { 
    exit('Error!'); 
} 
0

通常我會假設,由貓你的意思是串聯的,但它似乎並不合適在這裏。但是,假設是你的意思,你只檢查同樣的連接字符(逗號)在這兩個變量,就像這樣:

if (stristr($implode1, ",") && stristr($implode2, ",")) { 
    // error 
} else { 
    // success, do something 
} 

但是,假設你的意思是相同的項目在這兩個變量被輸入,在這種情況下的水果,你可以檢查一下這種方式:

$im1 = explode(",", $implode1); 
$im2 = explode(",", $implode2); 
foreach($im1 as $i) { 
    if (array_search($i, $im2)) { 
     // error 
    } else { 
     // success, do something 
    } 
} 

你當然可以只搜索給定值的兩個字符串,但我不認爲這就是你要做的。但是,假設它是,這裏是代碼:

$duplicate = "apple"; // the item you are searching for a duplicate of 
if (stristri($implode1, $duplicate) && stristr($implode2, $duplicate)) { 
    // error 
} else { 
    // success, do something 
} 
0
if (count(array_intersect)) { /* warning */ } 
0

您可以使用PHP的array_intersect函數來獲取路口(見http://php.net/manual/en/function.array-intersect.php):

$arr1 = explode(", ", "apple, orange, banana"); 
$arr2 = explode(", ", "banana, mango"); 
$intersection = array_intersect($arr1, $arr2); 
if (count($intersection) > 0) { 
    echo "WARNING: the lists have a non-empty intersection!"; 
}