当前位置:
  1. 首页 »
  2. 笔记 »
  3. 正文

PHP随机取出不重复数字

零分 2,615

有时需要不重复的数字,不管用于什么用途。我是写在随机抽取数据库里的数据,因为有几十万条的数据,随机抽取总会出点问题。不是连续太多就是超出,再且用rand()效率 也出错。join 总是出现很多连续的。就找了一个随机ID然后where in 来取出数据,这个主要ID 要连续的。要不然会出空值。我要随机100个,我就取出1000个,然后在选100个。

<?php    
function createRandID($s,$e,$n){    
    // 注意,要先声明一个空数组,否则while里的in_array会报错    
    $arr = array();    
    // 使用while循环,只要不够N个就永远循环    
    while(count($arr)<=$n){    
        // 产生一个随机数    
        $a = rand($s,$e);    
        // 判断:如果产生的随机数不再数组里就赋值到数组里    
        // 主要避免产生重复的数字    
        if(!in_array($a,$arr)){    
            // 把随机数赋值到数组里    
            $arr[] = $a;        
        }    
    }    
    // 返回产生的随机数字    
    return implode($arr,',');    
}    
echo createRandID(1,100,5); //实例,从1~100内取出5个不重复的随机数字   
?>  

这个随机数代码,效率还不错!

说明:$s:起始数,$e:结束数,$n:取出个数

记一次宝塔MySQL无法启动的问题

去顺丰送快递之后,一直就没有管理打开网站,好像不去之前也没怎么更新 难得休息,打算更新下企业模板,发现无法打开。显示链接数据库失败。 进入宝塔后台,发现MySQL停止了运行。 第一时间启动MySQL,但是发现一直启动失败。 之后更新了下宝塔,更新了下MySQL,还是无法启动。 百度了一番,发现原来我是真的看不懂那些日志。 只好找些看得懂的来测试。 删除了两个文件 /www/server/data/ib_logfile0 /www/server/data/ib_logfile1 无法启动,注释了innodb_开头配置 #innodb_data_home_dir = /www/server/dat
笔记 1,373

网站设置开灯(亮模式/白天)和关灯(暗模式/黑夜)效果

在很早之前,这个效果叫做开灯/关灯,现在叫做白天/黑夜,曾经有那么一段时间没有看到过这种效果,现在又很多网站/APP都喜欢这种切换白天/黑夜模式。 实现效果:设置2套或者多套色调模板,和之前的那种换皮肤大差不差。所以博客新主题也设置了这么一个效果,样式布局基本没怎么改变,后台设置页升级了一下,很多东西都不再“写死”,可以自由设置! 白天模式效果: 黑夜模式效果: 感觉黑夜的色调比较好看。 总体涉及到的原理: 1、设计2套或者多套CSS样式,可以在body里添加一个class,后面保留class/ID样式名称不变,在不同的样式里给设计一个区域,通过body里的class名调用不同的样式CSS。
笔记 2,510

记一次网页源码顶部空白行的问题处理

正常来说,网页源码顶部如非UFT-8 bom编码的问题,基本不会影响网站的正常运行,但如php生成xml的话,就会出现问题。 因更换了主题(新主题暂时未上线,只是测试),发现xml无法正常显示,查看源码,顶部多出了一行空白行,本地运行正常。 查找原因,基本每个PHP问题都排查了,未发现任何问题,将主题上传到另外一个网站运行,发现正常。基本可以排除是主题的原因,剩下的可能是插件的问题。 查看了插件的源码,发现真的是插件的问题,PHP插件文件底部多出了几行,删除多出的行,重新运行,空白行不见了! 记录下,防止下次又因同样的原因而花时间去排查!
笔记 2,639

wordpress禁用REST API导致古腾堡编辑器发布文章出错问题

wordpress禁用REST API,在function.php中加入以下代码: add_filter("json_enabled", "__return_false"); add_filter("json_jsonp_enabled", "__return_false"); add_filter("rest_enabled", "__return_false"); add_filter("rest_jsonp_enabled", "__return_false"); remove_action("init", "rest_api_init"); remove_action("rest_ap
笔记 1,475

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新

wordpress 后台主题设置选项按钮(button、input submit)点击屏蔽提交事件禁止刷新 如果在设计主题或者插件后台设置选项时,wordpress后台的按钮(button、input submit)默认是提交操作,如只是响应JS事件,需要屏蔽提交,防止页面刷新。e.preventDefault(); 完整示例: $("button.copy").on("click",function(e){ e.preventDefault(); JS操作 });
笔记 1,355