首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中消除多维数组中的连续值

在PHP中消除多维数组中的连续值
EN

Stack Overflow用户
提问于 2015-12-03 05:42:39
回答 1查看 25关注 0票数 0
代码语言:javascript
复制
$ticket_details =  Array ( 
    18271 => Array ( 
        0 => Array ( 
            0 => 'Aziz',
            1 => '2010-10-20 08:12:53' 
        ),
        1 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-10-20 10:10:10' 
        ),
        2 => Array ( 
            0 => 'Aziz',
            1 => '2010-10-20 11:54:57' 
        ) ,
        3 => Array ( 
            0 => 'gemma' ,
            1 => '2010-10-20 23:47:41' 
        ) ,
        4 => Array ( 
            0 => 'gemma' ,
            1 => '2010-11-01 08:40:20' 
        ) ,
        5 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 10:00:44' 
        ) ,
        6 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 11:21:55' 
        )  ,
        7 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 11:21:55' 
        )  ,
        8 => Array ( 
            0 => 'gemma' ,
            1 => '2010-11-03 11:21:55' 
        )  ,
        9 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 11:21:55' 
        ) 
    ) 
);

我希望通过第0元素删除连续的值。假设:“Aziz”连续出现3次。我想留下其中任何一个。再一次“引理”连续出现了2次。我想要这两种中的任何一种。

输出应该是这样的:

代码语言:javascript
复制
$ticket_details =  Array ( 
    18271 => Array ( 
        0 => Array ( 
            0 => 'Aziz',
            1 => '2010-10-20 08:12:53' 
        ),
        1 => Array ( 
            0 => 'gemma' ,
            1 => '2010-11-01 08:40:20' 
        ) ,
        2 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 11:21:55' 
        )  ,
        3 => Array ( 
            0 => 'gemma' ,
            1 => '2010-11-03 11:21:55' 
        )  ,
        4 => Array ( 
            0 => 'Aziz' ,
            1 => '2010-11-03 11:21:55' 
        ) 
    ) 
);

我试过这些密码。但它只适用于第一个连续值。不是为了其他价值。

代码语言:javascript
复制
    foreach ($ticket_details[18271] as $key => $value) {
            if (isset($ticket_details[18271][$key+1])) {

                if ($ticket_details[18271][$key][0] == $ticket_details[18271][$key+1][0]) {
                    $temp[$y] = $ticket_details[18271][$key+1][0];                      
                } else {
                    $temp[$y] = $ticket_details[18271][$key+1][0];
                }
                if (isset($temp[$y-1]) && (($ticket_details[18271][$key-1][0] == $ticket_details[18271][$key][0]) && 
                    ($ticket_details[18271][$key][0] == $ticket_details[18271][$key+1][0]))) {
                    $y = $y-1;
                    $temp[$y] = $ticket_details[18271][$key+1][0];
                }
            }

            $y++;
        }


        print_r($temp);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 06:00:22

只需记录下所用的姓氏。

代码语言:javascript
复制
$temp = array();
$last_name_stored=''; // To keep track of last saved item
foreach ($ticket_details[18271] as $key => $value) {
    if ($value[0] != $last_name_stored){ // check if already used
        $temp[18271][] = $value;
        $last_name_stored = $value[0]; // update the last saved item
    }
}

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

https://stackoverflow.com/questions/34058686

复制
相关文章

相似问题

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