1

特定のページの変数を保持するために多次元配列を使用しています。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を出力し続けます。

4

2 に答える 2

0

in_array()値を調べます。それはおそらくあなたが求めている鍵です。

で確認できますarray_key_exists()

于 2013-03-24T07:06:53.603 に答える
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";
}
于 2013-03-24T07:07:00.730 に答える