2017-03-02 146 views
0

我試圖將數值與數組中的另一個值進行比較。然而,該消息僅顯示exits in array 2即使當我有兩個不同的值(一個是10,從數組中的其他值是4和6)將數組與非數組值比較

if (in_array($post,$orderP)==0){ 
    echo ' exists in array2'; 
}else{ 
    echo 'does not exists in array2'; 
} 

echo $post; //gives a value of 10 
echo var_dump ($orderP); 

給出

array(2) { [0]=> array(2) { ["post_ID"]=> string(1) "4" 
          [0]=> string(1) "4" 
          } 
      [1]=> array(2) { ["post_ID"]=> string(1) "6" 
          [0]=> string(1) "6" 
          } 
     } 
+1

in_array本身會假意或真心所以沒有必要用== 0只是如果(in_array($後,$ P次))檢查{回聲 '存在';}足夠 –

+0

@vSugumar OK,我試過刪除== 0,顯然它仍然顯示不存在,即使我有一個匹配值4和數組(4) – fypforstack

+0

檢查我的下面的答案,並告訴我,如果它幫助 –

回答

0

我不值想in_array會檢查遞歸,,,可能有更好的代碼..但我的解決辦法是..

$bool = false; 
foreach($orderP as $order){ 

    if (in_array($post,$order)){ 
    echo ' exists in array2'; 
    $bool=true; 
    return; 
    } 
} 

if(!$bool){ 

    echo 'does not exists in array2'; 

} 
+0

謝謝,它幫助了我。你和上面的代碼:) – fypforstack

+0

感覺不錯..謝謝 –

1

你有多維數組,所以嘗試這樣的事情

$ids = array_column($orderP, 'post_ID'); 

if (in_array($post,$ids)){ 
      echo ' exists in array2'; 
      } 
else{ 
      echo 'does not exists in array2'; 
      }