Taypfoon Asked:2020-12-03 21:52:42 +0800 CST2020-12-03 21:52:42 +0800 CST 2020-12-03 21:52:42 +0800 CST 减少重复的数组重复 772 如何减少连续重复的数组元素?例如:从 6,1,1,2,3,4,4,4,4,4,8,1,1,1,6 得到 6,1,2,3,4,8,1,6 php 3 个回答 Voted Best Answer Alexey Shatrov 2020-12-03T23:48:55+08:002020-12-03T23:48:55+08:00 也许拐杖,但在这里 foreach ($array as $key=>$value) { if (isset($array[$key-1])) { if (($array[$key-1])!=$value) { $result[]=$value; } } else { $result[]=$value; } } 现场演示 DanKud 2020-12-03T22:21:59+08:002020-12-03T22:21:59+08:00 功能array_unique $arr = array('6', '1', '1', '2', '3', '4', '4', '4', '4', '4', '8'); $result = array_unique($arr); print_r($result); vp_arth 2020-12-03T23:59:34+08:002020-12-03T23:59:34+08:00 您可以使用array_filter: php>=5.6: $a = [6,1,1,2,3,4,4,4,4,4,8,1,1,1,6]; $b = array_filter($a, function($i) use ($a) { return $i === 0 || $a[$i-1] !== $a[$i]; }, ARRAY_FILTER_USE_KEY); echo implode(',', $b); // 6,1,2,3,4,8,1,6 php<5.6: $a = [6,1,1,2,3,4,4,4,4,4,8,1,1,1,6]; $filtered_keys = array_filter(array_keys($a), function($i) use ($a) { return $i === 0 || $a[$i-1] !== $a[$i]; }); $b = array_map(function($i) use ($a) { return $a[$i]; }, $filtered_keys); echo implode(',', $b); // 6,1,2,3,4,8,1,6
也许拐杖,但在这里
现场演示
功能
array_unique
您可以使用array_filter:
php>=5.6:
php<5.6: