我从多维数组中的给定值获取键.它工作得很好,除了我似乎无法从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)
抱歉不包括这个,我专注于这个小块而忘了备份,看看它适合哪里.
break;
Run Code Online (Sandbox Code Playgroud)
只会退出内部嵌套foreach.如果有更多行$name_books,它将继续循环并最终$book_code用array_search中的 'false'值覆盖 ;
一旦找到了您正在寻找的价值,请使用:
break 2;
Run Code Online (Sandbox Code Playgroud)
关于你的编辑,你打破的地方取决于你所发现的价值$book_code.如果您不打算继续,请更改参数break. break 3;也会退出while循环.根据嵌套级别更改值.
| 归档时间: |
|
| 查看次数: |
2290 次 |
| 最近记录: |