<?php
/*PHP 将数组打乱 shuffle 函数*/
/*PHP shuffle() 函数随机排列数组单元的顺序(将数组打乱)。
本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。*/
$arr = range(1,8);
print_r($arr);
echo nl2br("\n");
shuffle($arr);
print_r($arr);
echo nl2br("\n");
/*需要说明的是,每次刷新页面,shuffle($arr) 后的 print_r($arr) 结果都是不一样的。
而自 PHP 4.2.0 起,也不再需要用 srand() 等函数给随机数发生器播种而由系统自动完成。*/
/*range()函数:创建一个包含指定范围的元素的数组
语法:range(low,high,step)
参数参数:
参数 参数
low 必需。规定数组的最低值。
high 必需。规定数组的最高值。
step 可选。规定元素之间的步进制。默认是 1。
该函数创建一个数组,包含从 low 到 high (包含 low 和 high)之间的整数或字符。
如果 high 比 low 小,则返回反序的数组。*/
$arr = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
shuffle($arr);
print_r($arr);
echo nl2br("\n");
/*PHP array_filter()函数:过滤数组中的(空)值*/
/*使用回调函数过滤指定值*/
$array = array(
0 => '123',
1 => 'www.zini.com',
2 => null,
3 => 1,
4 => '',
5 => false,
6 => '0'
);
print_r(array_filter($array));
echo nl2br("\n");
/*过滤的空值,与empty()函数对应,具体包括:0,'0','',false,array(),null等*/
$array = array(
0 => 'www.zini.com',
1 => 1,
2 => 6,
3 => '',
4 => false,
5 => 0,
6 => -6,
7 => '8'
);
function filter($v){
if( is_int($v) && $v % 2 == 0 ){
return true;
} else {
return false;
}
}
print_r(array_filter($array,"filter"));
echo nl2br("\n");
/*如果有回调函数,array_filter函数会依次将数组单元的值传递到回调函数,如果回调函数返回true,
则该单元会被保留,反之则该数组单元则会被删除。
如果被过滤的数组是关联数组,键名会保持不变。
array_filter操作的是原数组的一个副本,如果要想改变原数组,则需要重新赋值*/