在这个 PHP foreach 循环中可能遗漏了一些非常简单的东西

Posted

技术标签:

【中文标题】在这个 PHP foreach 循环中可能遗漏了一些非常简单的东西【英文标题】:Possibly missing something very simple in this PHP foreach loop 【发布时间】:2015-03-31 06:40:18 【问题描述】:

此问题是this question 的扩展。

基本上,该脚本比较两个数组并输出差异(向用户显示什么)。

$urlsToShow = array_diff($siteUrls, $seenUrls);
if (!empty($urlsToShow)) 
    // Echo the url to show for the iframe within browse.php and add an entry to the database that the user has seen this site
    foreach ($urlsToShow as $urlToShow) 
        echo $urlToShow;
        $entry = "INSERT INTO views VALUES ('', '$currentUsername', '$urlToShow')";
        mysqli_query($con, $entry);
        break;
    

问题是我通过一次迭代将两个条目输入数据库?显示$urlsToShow 数组中的第一个站点(回显到 iframe 中)并与同一数组中的下一个站点一起添加到数据库中。但用户永远不会看到下一个站点。

我是否错误地使用了break

【问题讨论】:

【参考方案1】:

使用break; 可能不符合您的最佳利益。我建议使用continue;

【讨论】:

脚本必须在一次迭代后停止并将相同的 url 回显到 iframe 并将其添加到数据库中

以上是关于在这个 PHP foreach 循环中可能遗漏了一些非常简单的东西的主要内容,如果未能解决你的问题,请参考以下文章

队列ForEach循环抛出InvalidOperationException

php foreach怎样获取当前的循环次数

PHP - foreach循环中变量之前的&符号[重复]

[PHP] foreach循环的引用赋值可能导致的问题

php while循环和foreach循环 mysql_fetch_array()

PHP foreach循环中的多个索引变量