gpt4 book ai didi

php - 删除数组中的连续重复项

转载 作者:可可西里 更新时间:2023-10-31 23:12:42 25 4
gpt4 key购买 nike

我正在开发一个删除数组中重复项的函数。这个函数的问题是,如果连续的重复项少于 5 个,它将保留,而 5 以上将成为一个数字。

我的问题是无法弄清楚逻辑。

希望你能帮助我。

谢谢。

示例代码

function removeDuplicates($array){
$result = array();
$lastVal = null;
$temp_array = array();
foreach ($array as $key => $value) {
# code...
if($value != $firstVal){

$result[] = $value;

}else{

$temp_array[] = $value;

}

$lastVal = $value;

}

return $result;

}

示例

$array = array(1,2,4,1,1,1,1,0,8,7,2,0,0,8,8,8,8,8,8,8,2,4,1,5);

预期结果

[1,2,4,1,1,1,1,0,8,7,2,0,0,8,2,4,1,5]

最佳答案

这里:

    <?php

$array = array(1,2,4,1,1,1,1,0,8,7,2,0,0,8,8,8,8,8,8,8,2,4,1,5);
$test = removeDuplicates($array);
echo '<pre>';
var_dump($test);


function removeDuplicates($array){
$result = [];
$count = 1;

for ($i = 1; $i <= count($array)-1; $i++) {
if ($array[$i] == $array[$i - 1]) {
$count++;
} else {
if ($count >= 5) {
array_splice($array, $i-$count, $count-1);
}
$count = 1;
}
}

return $array;

}

输出:

array(18) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(4)
[3]=>
int(1)
[4]=>
int(1)
[5]=>
int(1)
[6]=>
int(1)
[7]=>
int(0)
[8]=>
int(8)
[9]=>
int(7)
[10]=>
int(2)
[11]=>
int(0)
[12]=>
int(0)
[13]=>
int(8)
[14]=>
int(2)
[15]=>
int(4)
[16]=>
int(1)
[17]=>
int(5)
}

关于php - 删除数组中的连续重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56750049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com