检查数据库数组中是否存在值不起作用
check if value exist in database array not working
需要检查数组中是否存在该值,该数组是从数据库 table 创建的,它只是不适合我,不断收到错误提示 "in_array() expects parameter 2 to be array, string given"
有人可以帮忙吗?
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
,这是不正确且不必要的。正如错误所说,您需要传递 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' ;
}
?>
这将检查字符串 $lang
是否存在于您的 $languages_array
中
if (in_array($lang, $languages_array)) {
echo 'found' ;
}
上面的错误是说 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' ;
}
?>
希望对您有所帮助
需要检查数组中是否存在该值,该数组是从数据库 table 创建的,它只是不适合我,不断收到错误提示 "in_array() expects parameter 2 to be array, string given" 有人可以帮忙吗?
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
,这是不正确且不必要的。正如错误所说,您需要传递 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' ;
}
?>
这将检查字符串 $lang
是否存在于您的 $languages_array
中
if (in_array($lang, $languages_array)) {
echo 'found' ;
}
上面的错误是说 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' ;
}
?>
希望对您有所帮助