如何检查另一个数组中的某个数组中是否有键?

时间:2018-10-21 13:11:24

标签: 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 ,$pages ) )
{
    $_GET['page'] = 'home';
}

$ pages []结果:

    Array ( 
[0] => Array ( [page_name] => Home ) 
[1] => Array ( [page_name] => reload) 

2 个答案:

答案 0 :(得分:2)

您称“键”为“值”。只是要清楚,避免错误。您正在将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";
}

答案 1 :(得分:0)

您应该使用isset()。在这里查看原因:what is faster: in_array or isset?

如果要使用2d数组,请参见:http://sandbox.onlinephpfunctions.com/code/f12fbc6a922fc8583b83534642ef652a4a123010

我更喜欢Ernani Azevedo的答案

继续编码