需要检查数组中是否存在该值,从数据库表创建的数组,它只是与我不起作用,不断收到错误说"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' ;
}
?>
你正在将$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' ;
}
?>
这将检查$languages_array
中是否存在字符串$lang
if (in_array($lang, $languages_array)) {
echo 'found' ;
}
上面的错误是说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' ;
}
?>
希望这对你有帮助