php - Foreach 键不递增

标签 php mysql

我正在创建一个类(class)图书列表 - 有一个图书主列表,以及一个可以分配给类(class)的图书列表。我需要创建一个主列表数组,删除已分配给类(class)的书籍,然后创建剩余书籍的选择列表。我已经完成了大部分工作,但我被困在一小部分上。 首先,我加载数组(book_id 是键,book_title 是值):

while ($master_book = mysql_fetch_array($big_book_list)) {
$b_id = $master_book['master_book_list_id'];
$book_list[$b_id] = $master_book['book_title'];
}

然后我删除类(class)的主要书籍(它已经被设置):

unset($book_list[$primary_book]);

现在我加载已分配的辅助书籍数组(主要书籍和辅助书籍来自同一列表):

$secondary_query = "select * from class_books cb, master_book_list mbl where class_id ='$class_id' and cb.book_id = mbl.master_book_list_id;";
$secondary_list = mysql_query($secondary_query);

现在我从主列表中删除 $secondary_list 中的书籍:

while ($secondary_book = mysql_fetch_array($secondary_list)) {
  $b_id = $secondary_book['book_id'];
  unset($book_list[$b_id]);
}

此时,print_r 正确显示了我的数组。但是这段代码:

foreach ($book_list as $book2) {
  $the_key = key($book_list);
  echo $the_key . ' and book2 is '. $book2 . '<br/>';
}

它将迭代预测的次数,但键保持相同的值(即“2”,数组中的第一个值。

有人能看出我做错了什么吗?

最佳答案

您可以从 foreach 循环中获取 key :

foreach ($book_list as $the_key => $book2) {
    echo $the_key . ' and book2 is '. $book2 . '<br/>';
}

关于php - Foreach 键不递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833691/

相关文章:

php - 嵌套 like 子句中的 Doctrine 值数组

PHP SQL Select 语句 VS 保存到文件服务器加载

php - PHP-mySQL 生成表的 ShowMore 按钮

mysql - 将 mysql 结果存储在 bash 数组变量中

php - 使用 shell_exec 从 PHP 中调用 Python

php - 有什么原因导致这个 cron 作业无法正常工作吗

mysql - 生日的Sql Date查询

php - SQL 查询用于选择具有 DISTINCT 的值并且最后仅发布一个值

mysql - 在 Laravel Eloquent 中加入和求和

php - 无法从 Reckon API 获取 token - 返回 SSL 错误