in_array函数无法正常工作

时间:2013-03-24 07:03:20

标签: php arrays multidimensional-array get

我使用多维数组来保存给定页面的变量。我试图从url中获取一个字符串,并将其与我的模板数组中的数组匹配,以便在页面上显示正确的变量。

这是我的阵列:

$template = array(

    "index" => array(
        "title" => "Dashboard",
        "model" => "model/dash.php"
    ),
    "input" => array(
        "title" => "Dashboard",
        "model" => "model/input.php"
    ),
    "jobboard" => array(
        "title" => "Job Board",
        "model" => "model/job_board.php"
    ),
    "jobcreate" => array(
        "title" => "Job Creator",
        "model" => "model/job_create.php"
    )
);

以下是我用来尝试验证页面的内容:

if(isset($_GET['page'])){ $page = $_GET['page']; }

if(in_array($page, $template)){
    $title = $template[$page]['title'];
    $model = $template[$page]['model'];
    echo "yes";
}else{
    $title = $template['index']['title'];
    $model = $template['index']['model'];
    echo "no";
}

echo "yes/no";是我用来调试的,如果它正常工作,但无论我做了什么,它只是继续输出no。

2 个答案:

答案 0 :(得分:0)

in_array()关注价值观。这可能是你追求的关键。

您可以使用array_key_exists()检查该内容。

答案 1 :(得分:0)

看一下php in_array()

的文档
  

in_array - 检查数组中是否存在值

看起来你的意图是检查数组的索引,而不是值。数组中的值是数组。

请尝试使用array_key_exists()

if (array_key_exists($page, $template)) {
  $title = $template[$page]['title'];
  $model = $template[$page]['model'];
  echo "yes";
}
else {
  $title = $template['index']['title'];
  $model = $template['index']['model'];
  echo "no";
}