首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除数组中连续出现的重复项

删除数组中连续出现的重复项
EN

Stack Overflow用户
提问于 2013-07-18 07:22:15
回答 2查看 737关注 0票数 4

有没有什么方法可以从下面的数组中删除连续的副本,而只保留第一个副本?

该数组如下所示:

代码语言:javascript
运行
复制
$a=array("1"=>"go","2"=>"stop","3"=>"stop","4"=>"stop","5"=>"stop","6"=>"go","7"=>"go","8"=>"stop");

我想要的是一个包含以下内容的数组:

代码语言:javascript
运行
复制
$a=array("1"=>"go","2"=>"stop","3"=>"go","7"=>"stop");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-18 07:24:39

你可以像这样做:

代码语言:javascript
运行
复制
if(current($a) !== $new_val)
    $a[] = $new_val;

假设您没有操作中间的数组,那么您可以使用current(),它比每次在count($a)-1处对其进行计数来检查值更有效

票数 1
EN

Stack Overflow用户

发布于 2013-07-18 07:34:23

连续重复?我不知道本机函数,但这个函数可以工作。差不多吧。我想我理解错了。在我的函数中,7 => "go“是6 => "go”的副本,8 => "stop“是新值...?

代码语言:javascript
运行
复制
function filterSuccessiveDuplicates($array)
{
    $result = array();

    $lastValue = null;
    foreach ($array as $key => $value) {
        // Only add non-duplicate successive values
        if ($value !== $lastValue) {
            $result[$key] = $value;
        }

        $lastValue = $value;
    }

    return $result;
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17711952

复制
相关文章

相似问题

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