有没有什么方法可以从下面的数组中删除连续的副本,而只保留第一个副本?
该数组如下所示:
$a=array("1"=>"go","2"=>"stop","3"=>"stop","4"=>"stop","5"=>"stop","6"=>"go","7"=>"go","8"=>"stop");我想要的是一个包含以下内容的数组:
$a=array("1"=>"go","2"=>"stop","3"=>"go","7"=>"stop");发布于 2013-07-18 07:24:39
你可以像这样做:
if(current($a) !== $new_val)
$a[] = $new_val;假设您没有操作中间的数组,那么您可以使用current(),它比每次在count($a)-1处对其进行计数来检查值更有效
发布于 2013-07-18 07:34:23
连续重复?我不知道本机函数,但这个函数可以工作。差不多吧。我想我理解错了。在我的函数中,7 => "go“是6 => "go”的副本,8 => "stop“是新值...?
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;
}https://stackoverflow.com/questions/17711952
复制相似问题