2013-03-24 122 views
1

我正在使用多維數組來保存給定頁面的變量。我試圖從url中獲取一個字符串,並將其與我的模板數組中的一個數組進行匹配,以便將正確的變量拉到頁面上顯示。in_array函數不能正常工作

這裏是我的數組:

$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";是我使用調試,如果它是工作是什麼或不,但不管我做了什麼,只是繼續輸出不。

回答

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"; 
} 
+0

哇你的生命的救星,我認真地強調了在這一個了一個多小時,我看到了array_key_exists功能,但說實話,由於缺乏經驗,我也搞糊塗了,所以我甚至沒有嘗試。它工作完美,並感謝解釋。 – user2204006 2013-03-24 07:28:34