php foreach循环访问值外部循环

时间:2014-11-08 03:09:41

标签: php loops foreach global-variables

是否可以访问php foreach循环之外的值? 例如:

<?php
    $array=array('a','b','c');
    foreach ($array as $value) {
}
    echo $value;
//$value is c.
?>

我需要在foreach循环之外访问$ value。 这是php的限制吗? 谢谢, 拉维

3 个答案:

答案 0 :(得分:0)

这可以帮到你:

<?php
    $array = array('a', 'b', 'c');
    foreach ($array as $k => $v) {

        if($v == "c")
            $value = $array[$k];
    }

    echo $value;
    //$value is c.
?>

如果您想搜索特定字符,那么这可以帮助您:

<?php
    $array = array('a', 'b', 'c');
    if(in_array("c", $array))
        $value = $array[(array_search("c", $array))];

    echo $value;
    //$value is c.
?>

a,b,c您可以轻松访问:

<?php
    echo $array[0];  //a
    echo $array[1];  //b
    echo $array[2];  //c
?>

答案 1 :(得分:0)

这是php所以我不愿意说不,但是......不。 如前所述,可以通过设置在作用域外定义的变量,但foreach有自己的局部变量和自己的作用域。

你想要的方式,尝试访问foreach循环中定义的变量,在这种情况下来自外部的$ value会导致问题。用于存储该变量的内存中的位置再次是空闲的,并且可能已被其他内容覆盖。

答案 2 :(得分:0)

根据您的评论:

  

我想做的是能够访问foreach循环之外的b c。

您可以使用方括号语法访问数组中的值:

echo $array[0];  // outputs "a"

由于默认情况下PHP数组从零开始,这意味着您可以使用从0开始的键访问数组中的值,例如:$array[0]$array[1]等。< / p>

您可以从relevant PHP manual page了解有关如何访问数组值的详情。