php算法,下面两种情况,得到的结果是一样的,哪个比较好?
高洛峰
高洛峰 2017-04-11 09:03:48
[PHP讨论组]
    //第一种
    foreach ($addtime as $a){
        $arr[]=date('Ym',$a);
    }
    $data=array_unique($arr);

    //第二种
    $data=array_unique(array_map(function($a){
        return date('Ym',$a);
    }, $addtime));
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
天蓬老师

参考这里的测试

foreach ($addtime as $a){
        $arr[]=date('Ym',$a);
    }
    $data = array_values(array_flip(array_flip($arr)));
ringa_lee

既然 $arr 是 $addtime 每项加相同前缀,你可以先对 $addtime 去重了再做啊,这样之后循环的次数也可以少一些,提高效率啊。

PHPz
那要看题主所谓的好是什么概念了。
方法一走的是语句,没有函数调用,速度上相对快一些。
方法二结构紧密,逻辑清晰,看上去更优雅一些。
伊谢尔伦

这两个的区别不就是foreach与array_map的区别?
对少量数据来说基本没区别,大于10w的数据量,foreach的性能好点

天蓬老师

我提供多一种,可能不同的数据,有不同的效果,楼主,自己用项目的实际数据,三种方法测试一下看看。

foreach ($addtime as $a){
    $arr[date('Ym',$a)]='';
}
$data=array_keys($arr);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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