Php 如何检查数组中是否存在另一个数组中的键?

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

我希望在表“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 ,$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()中使用