2015-01-11 60 views
0

需要檢查數組中是否存在該值,該數組是否從數據庫表中創建,它只是不與我一起工作不斷收到錯誤說「in_array()期望參數2是數組,字符串給出「 有人可以請幫忙嗎?檢查數據庫數組中存在的值是否不起作用

PHP代碼

<?php 
    $lang='en'; 
    $query_rsLanguages = "SELECT * FROM languages"; 
    $rsLanguages = mysql_query($query_rsLanguages); 
    $languages_array = array(); 
    while($row = mysql_fetch_array($rsLanguages)){ 
     $languages_array[] = "\"".$row['language_sign']."\""; 
    } 
    $languages_string = implode(",", $languages_array); 
    if (in_array($lang, $languages_string)) { 
     echo 'found' ; 
     } 
?> 

回答

1

您爆$languages_array爲字符串,並傳遞,爲in_array,這是不正確的和不必要的。正如錯誤說你需要傳遞一個陣列來搜索你只需要建立從你的結果語言陣列並檢查:

<?php 
    $lang='en'; 
    $query_rsLanguages = "SELECT * FROM languages"; 
    $rsLanguages = mysql_query($query_rsLanguages); 
    $languages_array = array(); 
    while($row = mysql_fetch_array($rsLanguages)){ 
     $languages_array[] = $row['language_sign']; 
    } 

    if (in_array($lang, $languages_array)) { 
     echo 'found' ; 
    } 
?> 
+0

正確的答案,謝謝 –

1

這將檢查字符串$lang裏面你$languages_array存在或不

if (in_array($lang, $languages_array)) { 
     echo 'found' ; 
} 
+0

我明白,我不應該使用破滅,感謝 –

1

上述錯誤是說,in_array的第二個參數應該是一個陣列,通過使用內爆你正在它的字符串使用下面的代碼。

<?php 
    $lang='en'; 
    $query_rsLanguages = "SELECT * FROM languages"; 
    $rsLanguages = mysql_query($query_rsLanguages); 
    $languages_array = array(); 
    while($row = mysql_fetch_array($rsLanguages)){ 
     $languages_array[] = $row['language_sign']; 
    } 

    if (in_array($lang, $languages_array)) { 
     echo 'found' ; 
    } 
?> 

希望這有助於你

+0

完美的作品感謝 –

+0

歡迎您,只是接受這個答案是正確的 –

相關問題