首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅当数组中的元素相邻时才删除这些元素

仅当数组中的元素相邻时才删除这些元素
EN

Stack Overflow用户
提问于 2013-04-20 12:14:28
回答 4查看 83关注 0票数 1

我有一个由如下信息组成的数组:

代码语言:javascript
复制
['Jay', 'Jay', 'Jay', 'Spiders', 'Dogs', 'Cats', 'John', 'John', 'John', 'Dogs', 'Cows', 'Snakes']

我要做的是删除重复的条目,但前提是它们必须相邻出现。

正确的结果应该如下所示:

代码语言:javascript
复制
['Jay', 'Spiders', 'Dogs', 'Cats', 'John', 'Dogs', 'Cows', 'Snakes']

我使用的是PHP,但是任何类型的逻辑都可以帮助我解决这个问题。

以下是我到目前为止尝试过的一些代码:

代码语言:javascript
复制
$clean_pull = array();
$counter = 0;
$prev_value = NULL;

foreach($pull_list as $value) {
    if ($counter == 0) {
        $prev_value = $value;
        $clean_pull[] = $value;
    }
    else {
        if ($value != $pre_value) {
            $pre_value = value;
        }
    }
    echo $value . '<br>';
}

弗朗西斯,当我运行以下代码时:

代码语言:javascript
复制
$lastval = end($pull_list);
for ($i=count($pull_list)-2; $i >= 0; $i--){
    $thisval = $pull_list[$i];
    if ($thisval===$lastval) {
        unset($pull_list[$i]);
    }
    $lastval = $thisval;
}
# optional: reindex the array:
array_splice($pull_list, 0, 0);

var_export($pull_list);

,我得到了以下结果:

代码语言:javascript
复制
array ( 0 => 'NJ Lefler', 1 => 'Deadpool', 2 => 'NJ Lefler', 3 => 'Captain Universe: The Hero Who Could Be You', 4 => 'NJ Lefler', 5 => 'The Movement', 6 => 'NJ Lefler', 7 => 'The Dream Merchant', 8 => 'Nolan Lefler', 9 => 'Deadpool', 10 => 'Nolan Lefler', 11 => 'Captain Universe: The Hero Who Could Be You', 12 => 'Nolan Lefler', 13 => 'The Movement', 14 => 'Tom Smith', 15 => 'Deadpool', 16 => 'Tom Smith', 17 => 'Captain Universe: The Hero Who Could Be You', ) 
EN

Stack Overflow用户

发布于 2013-04-20 12:26:25

跟踪数组中的最后一个元素,并跳过将下一个元素添加到新数组中。

或者,您可以只检查数组中的最后一个元素,并查看它是否不是数组中的当前元素:

代码语言:javascript
复制
$array = ['Jay', 'Jay', 'Jay', 'Spiders', 'Dogs', 'Cats', 'John', 'John', 'John', 'Dogs', 'Cows', 'Snakes'];
$new = array( array_shift( $array));
foreach( $array as $el) {
    if( !($new[count($new) - 1] === $el)) {
        $new[] = $el;
    }
}
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16116493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档