我想大家都知道array_rand()函数是一个随机在数组中取一个或者多个元素的函数,我们也都知道这个函数有两个参数.第一个参数是选择的一个数组,但是对于第二个参数大家或许就没有过多的去关心了,下面我来说说这第二个参数的故事.
最近写了一个方法,主要是从一个分类数组中随机取一定数量的分类进行输出.因为版面的需要,我选择了6个,所以自然而然的写成 array_rand($sort,6) 这样输出6个分类信息.在本地测试后一切正常.于是上传到网站使用这个方法.刷新页面后结果没有任何输出!怎么回事?说好的正常的呢,在本地刷新看看,还是正常的显示了6个分类了啊.看了看代码,在同一个页面的其他方法都是正常的,唯独我这个不行.看了看代码也没有什么错误,都是很简单的php代码,实在是找不到问题所在了,只好使用print_r 和 echo 一步步输出看下到底哪里出问题了,然后终于发现了 array_rand() 这个函数有问题,它没有输出任何内容!于是便print_r(第一个参数的那个数组),结果正常,看来的第二个参数的问题了.把他改为1之后,输出了一个分类.改为2之后位于输出,之后改为其他数字都不输出!为什么改为1就正常.于是想到分类问题,在网站后台看了看,发现只有一个分类,然而在本地测试时分类数为8个,难道是这个问题?于是在本地将这个参数改为10之后,页面成功的没有内容显示了,选了个小于8的数字后没有意外的正常显示了.
之后发现,只要第二个参数是大于第一个数组元素数量的值,就不会有任何输出内容.所以在使用这个函数时,当数组元素不固定时,加个条件判断语句吧.否则这个函数在某些特殊情况下就给你罢工了.