比较数组与数据库,取消设置值,而不会丢失偏移量?

时间:2011-09-23 01:08:48

标签: php mysql arrays offset

我正在使用一个相当简单的过程来检查一系列网址与我的网址数据库是唯一的。 $sql = "INSERT INTO linkz (url, last_visited) VALUES ('".$url."', NOW())";然后我通过以下方式取消设置数组的值:

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

你想要做的就是把指数转回来。这是一篇很好的小文章:

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


基本上你想要做的是:

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