php数组随机排序(php数组元素)

http://www.itjxue.com  2023-02-25 07:05  来源:未知  点击次数: 

php里面怎么随机打乱数组?

function shuffle(array $array): bool

Description:

打乱数组

本函数打乱(随机排列单元的顺序)一个数组。 它使用的是伪随机数产生器,并不适合密码学的场合。

如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。

Param:

array $array 待操作的数组。

Return:

bool 成功时返回 TRUE, 或者在失败时返回 FALSE。

?php

$numbers = range(1, 20);

shuffle($numbers);

foreach ($numbers as $number) {

echo "$number ";

}

?

php 随机排序广告的实现代码

投放广告的人都很关注他的广告会放在哪个位置,

因为这可能影响点击次数,

甚至是否在第一屏显示.

就这个问题,

其实很容易解决,

只要随机显示广告即可.

代码如何实现?

在这我推荐两种随机显示广告的处理办法.

在后端处理

在后端排序好再输出页面.

将广告节点用数组存放,

对数组进行随机排序,

再输出经过排序的数组.

参考代码

(PHP)

如下:

复制代码

代码如下:

//

用数组存放广告列表

$ads

=

array('a

href="#"img

src="ad-125x125.png"

alt="广告

1"

width="125"

height="125"

//a'

,'a

href="#"img

src="ad-125x125.png"

alt="广告

2"

width="125"

height="125"

//a'

,'a

href="#"img

src="ad-125x125.png"

alt="广告

3"

width="125"

height="125"

//a'

,'a

href="#"img

src="ad-125x125.png"

alt="广告

4"

width="125"

height="125"

//a'

);

//

对数组进行随机排序

shuffle($ads);

//

输出经过排序的数组

$html

=

'';

foreach

($ads

as

$ad)

{

$html

.=

$ad;

}

echo

$html;

我们来扩展一下,

如果我是站长,

预留了

4

个广告位,

但现在只有

3

个在投放;

我想在空置的广告位放置一个

"虚位以待"

的广告招租链接,

并显示在最后,

该如何处理呢?

在排序完成之后再插放广告招租链接就可以了.

复制代码

代码如下:

//

用数组存放广告列表

$ads

=

array('a

href="#"img

src="ad-125x125.png"

alt="广告

1"

width="125"

height="125"

//a'

,'a

href="#"img

src="ad-125x125.png"

alt="广告

2"

width="125"

height="125"

//a'

,'a

href="#"img

src="ad-125x125.png"

alt="广告

3"

width="125"

height="125"

//a'

);

//

对数组进行随机排序

shuffle($ads);

//

输出经过排序的数组

$html

=

'';

foreach

($ads

as

$ad)

{

$html

.=

$ad;

}

//

添加广告招租链接

$html

.=

'a

href="#"img

src="sell-ad-125x125.png"

alt="虚位以待"

width="125"

height="125"

//a';

echo

$html;

我就是用这个方法来输出

125x125

广告的,

因为它直观可靠,

处理方便.

但是如果你希望对页面做静态化,

建议选用

JS

随机排序的方法.

在前端处理

在后端按原有循序输出,

在页面通过

JavaScript

重新排序.

假设页面输出广告区域的

HTML

片段如下.

复制代码

代码如下:

div

id="ads"

a

href="#"img

src="ad-125x125.png"

alt="广告

1"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

2"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

3"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

4"

width="125"

height="125"

//a

/div

我们可以通过

JS

来对广告进行重新排序.

参考代码如下:

复制代码

代码如下:

div

id="ads"

style="display:none;"

a

href="#"img

src="ad-125x125.png"

alt="广告

1"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

2"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

3"

width="125"

height="125"

//a

a

href="#"img

src="ad-125x125.png"

alt="广告

4"

width="125"

height="125"

//a

/div

div

id="random-ads"

style="display:none;"

/div

script

type="text/javascript"

//![CDATA[

var

source

=

document.getElementById('ads');

var

target

=

document.getElementById('random-ads');

var

ads

=

source.getElementsByTagName('a');

//

下标数组

var

arr

=

new

Array();

for(var

i=0;

iads.length;

i++)

{

arr[i]

=

i;

}

//

随机排序

function

randomSort(a,

b){

var

tmp

=

parseInt((Math.random()

+

0.5),

10);

return

tmp

?

a-b

:

b-a;

}

//

将老的广告区的节点随机插放到新的广告区

arr.sort(randomSort);

for(var

i=0;

iarr.length;

i++)

{

target.appendChild(ads[arr[i]].cloneNode(true));

}

//

显示新的广告区和移除老的广告区

source.parentNode.removeChild(source);

target.style.display

=

'block';

//]]

/script

如果有如同方法

1

那样的扩展需求,

将空广告位显示在最后,

且显示广告招租链接,

该如何处理?

这个当作课后习题吧...

PHP如何从多组数组中抽出所有的值,并随机排序?

array_merge()合并所有的数组

shuffle()然后用此方法打乱数组

在随机取数组中的元素

使用php语言编写代码,定义一个数组,填充10个100以内随机数,并按从小到大的顺?

因为语言不同,代码就不贴了,思路如下:

定义数组,因为10个是确定的,所以用第一个for循环循环十次,每次都random出数字赋值给数组,之后冒泡排序,因为冒泡法的循环次数不定,用while内嵌for循环:

while(flag){

flag=false;

for(i=0;i10;i++)

{if(a[i]a[i+1]){a[i]=a[i]+a[i+1];a[i+1]=a[i]-a[i+1];a[i]=a[i]-a[i+1];flag=true;}}

}

意思就是每次都用冒泡法给a0~a9两两排序,如果确实有不符合要求的就变动位置,如果都没有那么flag保持初值false则推出while循环

(责任编辑:IT教学网)

更多
上一篇:没有了

推荐图片影音文章