使用array_filter和array_slice从行加载特定字段,之后想要清空字段

时间:2017-06-09 15:15:38

标签: php mysql

我这里有一个非常复杂的问题。我先试着用语言解释一下。我在数据库表中插入100个关键字和100个URL,使用名为url_01,url_02,url_03,anchor_01,anchor_02,anchor_03等的字段。

现在我想选择第一个网址/锚点组合,我设法使用array_filterarray_slice这样的组合:

$anchor=current(array_filter(array_slice($gig,5)));
$url=current(array_filter(array_slice($gig,105)));

我在第5位切片的原因是因为其他字段应该被忽略,而anchor_01的范围一直到最后的anchor_00,所以在位置105我的url字段开始。这很好用,它在跳过空字段的同时为我提供了url / anchor组合。

我使用current(array_filter)的原因是因为我想在使用它之后从数据库中删除锚点/ url组合,这允许我在忽略空点的同时取第一个条目,而切片确保我从其他钥匙开始。

但是,当我这样做时,我只考虑如何从数据库中取出它,而不是如何将其删除。

所以我的问题是:有没有办法找出我想删除的那两个而不是其他任何一个?

或者有更好的方法我可以先插入100个url和100个锚点的列表,并确保我总是从数据库中获取一个唯一值,因为每个条目只能使用一次,并且我认为在此之后它会被删除。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,我无法删除之前的值,但我可以通过添加这样的计数器来选择正确的字段:

$counting=$gig['count'];
$anchor=current(array_filter(array_slice($gig,6+$counting)));
$url=current(array_filter(array_slice($gig,106+$counting)));

if($server_date>$post_date) {
   $add_count=$counting+1;
   $sql_date="UPDATE `wp_backlinks` SET count='".$add_count."' WHERE id=".$client_id;
   $result = $wpdb->query($sql_date);
} else { echo 'WAIT'; } 

轻松修复,我仍然认为有更好的方法可以在PHP中实现这一点吗?