需要检查数组中是否存在值,从数据库表创建的数组,它只是不与我一起工作继续得到错误说“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' ;
}
?>
答案 0 :(得分: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' ;
}
?>
答案 1 :(得分:1)
这将检查$lang
内是否存在字符串$languages_array
if (in_array($lang, $languages_array)) {
echo 'found' ;
}
答案 2 :(得分:1)
上面的错误是说in_array的第二个参数应该是一个数组,通过使用implode你将它变成一个字符串使用下面的代码。
<?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' ;
}
?>
希望这有助于你