Php 如何检查数组中是否存在另一个数组中的键?
我希望在表“home”或“reload”中没有键时执行操作 现在我有这样的东西,但它不工作Php 如何检查数组中是否存在另一个数组中的键?,php,arrays,Php,Arrays,我希望在表“home”或“reload”中没有键时执行操作 现在我有这样的东西,但它不工作 $pages = array(); $sql = "SELECT page_name FROM pages"; $result = $con->query($sql); while($row = $result->fetch_assoc()) { $pages[] = $row; } $page = $_GET['page']; if( !in_array( $page ,$pa
$pages = array();
$sql = "SELECT page_name FROM pages";
$result = $con->query($sql);
while($row = $result->fetch_assoc()) {
$pages[] = $row;
}
$page = $_GET['page'];
if( !in_array( $page ,$pages ) )
{
$_GET['page'] = 'home';
}
$pages[]结果:
Array (
[0] => Array ( [page_name] => Home )
[1] => Array ( [page_name] => reload)
您正在调用“键”,其中是“值”。只是为了清楚和避免错误。您正在将MySQL结果作为数组加载到数组中。要使代码正常工作,只需更改:
$result = $con->query ( "SELECT `page_name` FROM `pages`");
$pages = array();
while ( $row = $result->fetch_assoc ())
{
$pages[] = $row["page_name"];
}
if ( ! in_array ( $_GET["page"], $pages))
{
$_GET["page"] = "home";
}
您应该使用isset()
。在这里查看原因:
如果要使用二维阵列,请参见以下内容:
我更喜欢Ernani Azevedo的回答
继续编码您需要先将2d
$pages
数组转换为1d,然后再在_array()中使用代码>