2017-09-11 83 views
0

如果我想通過手動標記(根據需要突出顯示數據庫中的特定條目)數組中的某些條目,以便它們可以被檢測到並因此被區別對待。我想知道做這個的理想方法是什麼?即最快(性能明智)和最高效。目前我正在做這樣的:PHP:什麼是最好的方式來標記數組中的項目?

陣:

"A"=>"yes", 
"B"=>"no >", 
"C"=>"why", 

代碼檢測這樣的:

if (strpos($string,' >')!==false) {//action//} 

所以,你可以看到它的檢測,我手動添加一個條目>來。但它也很煩人,因爲這個角色必須用str_replace去掉。

+2

爲什麼不將選定項目的索引存儲在不同的數組中?如果在關係數據庫中,您不應該更改該值以指示選擇了某些內容,則應該有一個單獨的列指示某些內容被選中。 – Devon

+0

^與http://php.net/manual/en/function.in-array.php – chris85

+0

您似乎混合了數組和數據庫的概念。在數據庫中,這些信息絕對應該保存在一個單獨的表中,對於腳本邏輯內部的數組,可能有意義的是讓第二個數組擁有額外的表信息。 – arkascha

回答

0

做出一系列答案。

問題:

$array = [ 
    "A" => "yes" 
    "B" => "no" //this is the correct result. 
    "C" => "why" 
] 

$answer = [ 
    0 => "B"; 
] 

並運行一些比較邏輯;數組的foreach值將其與正確的答案進行覈對:

foreach($array as $key => $value){ 
    if(in_array($key, $answer)){ 
     // this is the correct answer. So process. 
     $correct = "The correct answer is ".$key." : '".$value."'"; 
    } 
} 
unset($key,$value); 

print $correct; // "The correct answer is B : 'no'" 
+0

好吧,看起來不錯,你能解釋爲什麼它會更好嗎?例如,每次標記項目似乎需要更長的時間。添加一個新條目0 =>「B」,而不是隻在條目的最後右側添加一個>。 – Hasen

+0

您有一個或多個問題陣列和一個答案陣列。他們匹配的地方是一場比賽!我假設你有多個問題,所以這可以適用於所有的問題 – Martin

相關問題