[英]filter array values from a dictionary
我在 php 上有一個 $array,我想知道這些值是否來自特定的字典。
例如,如果我的字典是一個值數組 ['cat', 'dog', 'car', 'man'] 我想過濾我的 $array 並返回 false 如果這個單詞中的單詞不在字典。
所以,如果 $array 是:
['men', 'cat'] // return false;
['man', 'cat'] // return true;
['cat', 'dogs'] // return false;
[''] // return false;
等等...
如何以這種方式過濾數組?
function checkDictionary($array,$dictionary){
foreach($array as $array_item){
if(!in_array($array_item,$dictionary)){
return false;
}
}
return true;
}
您還可以執行以下操作:
function checkDictionary($array,$dictionary){
$result = (empty(array_diff($array,$dictionary))) ? true : false;
return $result;
}
function doValuesExist($dictionary, $array) {
return (count(array_intersect($dictionary,$array)) == count($array));
}
為了提高性能,您應該將“字典”轉換為關聯數組,其中鍵是字典中的單詞:
$dict = array_flip($dict);
然后您所要做的就是遍歷您搜索的值,即O(n)
:
function contains($search, $dict) {
foreach($search as $word) {
if(!array_key_exists($word, $dict)) {
return false;
}
return true;
}
參考: array_flip
, array_key_exists
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.