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));
阅读 3.3k
5 个回答

参考这里的测试

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

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题