从嵌套的foreach语句PHP中访问变量

dij*_*jon 0 php

我从多维数组中的给定值获取键.它工作得很好,除了我似乎无法从OUTSIDE访问我用于获取密钥的嵌套foreach循环中的变量.

所以我的foreach循环是:($ name_books是包含3个较小数组的多维数组)

foreach($name_books as $test) {
    foreach ($test as $key => $value) {
    $book_code = array_search($row['name'],$test);
    echo $book_code; //just to see if it works, which it does
    break;
        } 
    }
//But then if I go outside of the loop..

echo $book_code." is the book code"; // <--DOES NOT WORK
Run Code Online (Sandbox Code Playgroud)

所以我知道我正在处理变量范围问题,我已经尝试在foreach循环中声明全局变量,但没有任何效果.

我确信有一些荒谬的简单,我错过了!

编辑:

urg ..我退后一步,意识到其他的事情,所有这一切都发生在一个while循环中(从数据库中获取东西)

所以代码更像是:

while($row=mysql_fetch_assoc($result)) {

   ...original foreach loop from above

}
Run Code Online (Sandbox Code Playgroud)

抱歉不包括这个,我专注于这个小块而忘了备份,看看它适合哪里.

lab*_*bue 5

break;
Run Code Online (Sandbox Code Playgroud)

只会退出内部嵌套foreach.如果有更多行$name_books,它将继续循环并最终$book_codearray_search中的 'false'值覆盖 ;

一旦找到了您正在寻找的价值,请使用:

break 2;
Run Code Online (Sandbox Code Playgroud)

关于你的编辑,你打破的地方取决于你所发现的价值$book_code.如果您不打算继续,请更改参数break. break 3;也会退出while循环.根据嵌套级别更改值.