php - 关于数组排序问题,相同值不能连续出现三次。
PHP中文网
PHP中文网 2017-04-11 10:00:09
[PHP讨论组]

如题,重排后的数组,相同值不能连续出现三次。

$arr = array(1,1,1,2,2,2,3,3,3,3);

在线等!!!

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
PHP中文网

计数器的方式:

<?php
$arr = array(1,1,1,2,2,2,3,3,3,3,4,5,6,6,6);

function fsort($ss){
    $result = array($ss[0]);
    $overage = array();
    $num = 1;
    for($i=1, $len=count($ss); $i<$len; $i++){
        if( $ss[$i]==$ss[$i-1] ){
            if( $num<2 ){
                $result[] = $ss[$i];
                $num++;
            }else{
                $overage[] = $ss[$i];
            }
        }else{
            $result[] = $ss[$i];
            $num=1;
        }
    }
    return array_merge($result, $overage);
}


echo "<pre>";
print_r( fsort($arr) );

如果你能把问题说清楚,就没这么麻烦了。

阿神
        <?php
        $arr    = array(1,1,1,2,2,2,3,3,3,3,4,5,6,6,6);
        $result = array();
        
        foreach($arr as $key => $value) {
            if(isset($result[$value]) && count($result[$value]) >= 3) {
                unset($arr[$key]);
                continue;
            }
            $result[$value][] = $value;
        }
        
        var_dump($arr);die;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号