【问题标题】:Comparing array vs. database, unsetting values, without losing offset?比较数组与数据库,取消设置值,而不会丢失偏移量?
【发布时间】:2011-09-23 01:08:47
【问题描述】:

我正在使用一个相当基本的过程来检查一组 url 与我的唯一 url 数据库。 $sql = "INSERT INTO linkz (url, last_visited) VALUES ('".$url."', NOW())"; 然后我取消设置数组的值,如果它通过以下方式出错:

if (!mysql_query($sql,$con)){
    unset($grabbedURL[$key]);
}

在我尝试通过 $i++ for 语句传递数组以遍历数组中的所有值之前,这工作得很好而且很花哨。我遇到的问题是,当您从数组中取消设置值时,您会丢失数组中的偏移量。因此,如果 [2] 被删除,我会得到一个未定义的偏移错误后处理。我应该只设置一个 if 语句来检查偏移量是否为空吗?我应该这样做有更好的方法吗?

提前致谢!

特雷

【问题讨论】:

  • 完成后,您可以使用array_values() 创建一个新的“压缩”数组。
  • 你有一个名为linkz的表?
  • 使用foreach(..) 代替for(..) 循环怎么样?

标签: php mysql arrays offset


【解决方案1】:

看来您想要做的是将索引移回。这是一篇不错的小文章:

http://xmouse.ithium.net/2004/removing-values-from-a-php-array


基本上你想做的是这样的:

if ( ! mysql_query($sql, $con) )
{
    unset( $grabbedURL[$key] );
    $grabbedURL = array_values($grabbedURL);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多