2012-11-14 217 views
0

我想將一個字符串與數組進行比較,以查看字符串是否存在於數組中,如果是這樣,則echo'in array'。我只能保持echo的效果,因爲我想用數組中的最後一個條目工作。檢查數組中是否存在值

foreach($array as $key => $value) { 
    foreach($entries as $entry) { 
     if($entry == $value) echo 'in array 1'; 
    } 
    if (in_array($value, $entries)) { 
     echo 'in array 2'; 
    } 
    if(isset($entries[$value])) { 
     echo 'in array 3'; 
    } 
} 

的回聲「在陣列1」和「數組2」的工作只在無論$項數組中的最後一個條目,和回聲「在陣列3」不工作的。

其可能是一些愚蠢的,但我沒有看到它...

編輯:

這裏是陣列的一些例子

$entries = 
array(5) { 
    [0]=> 
    string(14) "example text 1" 
    [1]=> 
    string(14) "example text 2" 
    [2]=> 
    string(14) "example text 3" 
    [3]=> 
    string(14) "example text 4" 
    [4]=> 
    string(14) "example text 5" 
} 

$array = 
array(5) { 
    [0]=> 
    string(14) "example text 1" 
    [1]=> 
    string(14) "example text 2" 
    [2]=> 
    string(14) "example text 3" 
    [3]=> 
    string(14) "example text 7" 
    [4]=> 
    string(14) "example text 8" 
} 

所以現在當我做

foreach($array as $key => $value) 

$值應該有我的$數組的值,我需要比較每一個thos e值來查看它們是否出現在我的$ entries數組中。如果是這樣的ID喜歡「陣」呼應

編輯2:

,如果它使正在被文件(),因爲信息是從日誌來創建我的$條目陣列的差異。每次添加一個新文件時,它都會被記錄下來,然後我想將傳入文件與日誌進行比較,確定它們是否已經被添加,如果沒有,添加它們。

+0

我很困惑,你說你要比較一個字符串數組,但它看起來像你比較數組一個數組..你能提供一些樣本數據在所有這些數組/字符串,你得到了什麼,你期待什麼? – gingerCodeNinja

+0

well $ value是一個存儲在數組中的字符串,通過循環$ array獲取每個$ value,然後將$ value與$ entries中的每個值進行比較($ entry) – cwal

+0

,這樣您的字符串的每個字符都是$ value?像'貓'是陣列('c','a','t');'?還是你的意思是字符串中的每個單詞都是$ value?像'貓坐在墊子上'是'數組'('貓','坐','上',''','墊子');'?什麼是$條目? – gingerCodeNinja

回答

1

$value不是關鍵。

值是一個「值」。

,如果你真的想做的事,你在做什麼,你可以這樣做:

if(isset(array_flip($entries)[$value])) { 
    echo 'in array 3'; 
} 

但是,如果你有相同的值幾個元素可能無法正常工作。

See DOCs

+0

都將是唯一的 – cwal

+1

那麼我的前兩個變體怎麼才能在最後一個條目上工作呢? – cwal

2

你的代碼似乎只是檢查什麼是常見的兩個數組中,並執行它三種不同的方式。一個人處理另一個人的原因取決於數據。那裏的比較器==,in_arrayisset的工作方式不同。真的需要看到你的數組結構/樣本數據進一步評論。

但是,你目前在做什麼,找出兩個數組的共同元素,可以很容易地與array_diff()array_intersect()

你的第一行 -

我想比較字符串用數組來查看數組中是否存在字符串 ,如果是這樣,則echo'in array'。

正好可以只用一個調用in_array實現,像in_array('cat', array('cat', 'dog', 'mouse'));

+0

3種不同的方式進行測試,我不能得到我的任何工作方式。 – cwal

+0

增加了示例數組 – cwal