尝试查找匹配字符串时PHP中的2D数组失败

Ale*_*lek 1 php arrays loops count multidimensional-array

我还在学习PHP,但我需要一种方法来跟踪两个相关值的列表,一个电影院和它的邮政编码.在你进一步阅读之前,我必须强调我在技术上并不需要解决这个问题,因为我已经用更有效的方法替换了它.我真的只是想知道为什么它不起作用,因为我在其他地方找不到任何关于它的东西.

$cinema_locations = array(
    array("Odeon", "M4 2BS"),
    array("Cineworld", "OL7 0PG"),
    array("Vue", "M50 3AG"),
    array("AMC", "M3 4EN")
);
for ($i=0; $i<count($cinema_locations); $i++) {
    if ($cinema_locations[$i][0] == $_GET['cinema_name']) {
        $postcode = $cinema_locations[$i][1];
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你可以从代码中看到的那样,我试图遍历主数组,以便我可以将每个子数组的第一个值与$_GET变量进行比较.我已多次查看此代码,甚至展示了我的其他编码器朋友,我们都没有发现任何错误,语法或其他方面.然而,浏览器只显示白屏.如果有人能够对这个问题有所了解,我和我的朋友们会非常感激; 谁知道,它可能会帮助其他人解决同样的问题.

对于任何可能感到好奇的人,我用关联数组替换了2D数组:

$cinema_locations = array(
    "Odeon" => "M4 2BS",
    "Cineworld" => "OL7 0PG",
    "Vue" => "M50 3AG",
    "AMC" => "M3 4EN"
);
$postcode = $cinema_locations[$_GET['cinema_name']];
Run Code Online (Sandbox Code Playgroud)

编辑

谢谢rishi,做到了.我甚至从未认为return会使结果无效.使用break停止循环和页面的其余部分加载正常.

Nik*_*aut 5

也许你应该写break;而不是return;

break如果你符合条件,你需要你的for循环.并继续下面的代码.

return 将立即从其调用的位置返回值.