php如果$ _GET等于某个数组

I'm trying to use the break concept, but I am also am using some built in PHP functions to only allow certain values into the get function.

    $allowedKeys = array(
          'route'
);

$options = array(
    'chapter_1' => 'chapter_1',
    'chapter_2' => 'chapter_2',
    'chapter_3' => 'chapter_3'
);

$_GET = array_intersect_key($_GET, array_flip($allowedKeys));

if($_GET[$allowedKeys[0]] && array_key_exists($_GET[$allowedKeys[0]], $options)) {
    if($_GET[$allowedKeys[0]] == $options[0]) {
        /* This is where I'm trying to see if route=chapter_1 then do something.
           The logic I'm trying to write is if the route is chapter_1 then print
           out the content from chapter 1 How can determine this? */

        echo "Hello";
    }

}

Why isn't this code echoing "hello"?

Why make it more complex than it needs to be?

//check you have a route
$route = isset( $_GET['route'] ) ? $_GET['route'] : '';

switch( $route ) {
    case 'chapter_1':
        //do chapter one stuff
        echo 'Chapter 1';
        break;
    case 'chapter_2':
        //do chapter two stuff
        echo 'Chapter 2';
        break;
    default:
        echo 'Intro';
}

I'll answer your question directly for you. 'Hello' isn't showing because it is inside an if statement that isn't being triggered because either "if($_GET[$allowedKeys[0]] && array_key_exists($_GET[$allowedKeys[0]], $options))" or "if($_GET[$allowedKeys[0]] == $options[0])" is returning false.