一、有关输出的函数
echo print 语言结构
print_r 打印复杂变量的信息
如果想捕捉print_r的输出,可以设置第二个参数为true,print_r 不打印结果,而是返回其输出。
var_dump()
二、时间日期函数
1. time()时间戳
返回从unix纪元(格林威治时间1970一月一日)到当前时间的秒数。
10位整数数字。
常用语保存文章的发布时间,商品的发布时间,修改时间,删除时间。
2. date()格式化时间戳。
date(格式化字符串,[,时间戳]);
3. microtime()
返回当前的微秒数,及时间戳字符串。
当使用true参数时,返回对应的浮点数。
三、数组常用函数
1. max(),min(),count()
<?php
/*var_dump($_SERVER);*/
echo max(1,23,3,5);//23
echo "<br>";
echo max (array(2,4,5));//5
echo "<br>";
echo count(array(2,4,5));//3
2.range(),array_merge(),array_rand(),shuffle
2.1 range(起始值,结束值):返回位于起始元素和终止元素之间形成的新数组。
<?php
$arr = range(10,20);
print_r($arr);
<?php
$arr = range(10,20);
$a = range('a','z');
$b = range('A','Z');
print_r($a);
print_r($b);
2.2 array_merge()数组合并。
<?php
$arr1 = ['name'=>'libai',
'sex'=>'nan',
0=>'a',
3=>'c'];
$arr2 = ['name'=>'dufu',
'add'=>'beijing',
0=>'a'];
$arr = array_merge($arr1,$arr2);
print_r($arr);
数组合并下标冲突解决规则:
字符串下标,后面的元素覆盖前面的元素。
整数下标,重新建立下标索引
<?php
$arr = array_merge(range('a','z'),
range('A','Z'),
range(0,9));
print_r($arr);
2.3 array_rand(数组,随机取出元素的个数)。
随机取出数组内元素,返回随机数组的下标
如果随机取出一个,返回下标。
如果取出多个,返回下标数组。
<?php
$arr = range('a','z');
$index = array_rand($arr,1);
var_dump($index);
$indexs = array_rand($arr,2);
var_dump($indexs);
2.4 shuffle(数组):打乱数组。
打乱成功返回true, 打乱失败返回false。
<?php
$arr = range('a','z');
$index = array_rand($arr,1);
$indexs = array_rand($arr,4);
print_r($indexs);
shuffle($indexs);
print_r($indexs);
3、is_array():判断变量是否是数组类型
<?php
$array =10;
if(is_array($array)){
echo"是数组";
}else{
echo"不是数组";
}
4、键值相关函数
4.1、array_keys()
返回数组中元素的键名组成的数组。
<?php
$stu = ['name'=>'libai',
'sex'=>'nan',
'age'=>20];
$keys = array_keys($stu);
print_r($keys);
4.2、array_values()
返回数组中所有元素的值组成的数组。
<?php
$stu = ['name'=>'libai',
'sex'=>'nan',
'age'=>20];
// $keys = array_keys($stu);
// print_r($keys);
$values = array_values($stu);
print_r($values);
4.3、array_combine(键数组,值数组)
创建一个数组,用键数组的值作为键名。
值数组的值作为值。
<?php
$keys=['name','sex','age'];
$values= ['libai','nan',67];
$res = array_combine($keys,$values);
var_dump($res);
4.4、in_array(查找的值,数组)。
查找数组中是否包含某个值。
<?php
$array = array('name'=>'李白',
'杜甫',
'白居易',
'tom',
123
);
var_dump(in_array('李白',$array));
echo "<hr>";
//区分大小写。
var_dump(in_array('TOM',$array));
echo "<hr>";
//不区分数据类型。
var_dump(in_array('123',$array));
4.5、array_key_exists(键,数组);
<?php
$array = array('name'=>'李白',
'杜甫',
'白居易',
'tom',
123
);
var_dump($array);
echo "<br>";
var_dump(array_key_exists('name',$array));
echo "<hr>";
var_dump(array_key_exists('0',$array));
echo "<hr>";
var_dump(array_key_exists('4',$array));
4.6、array_search()
在数组中搜索给定的值, 如果成功返回相应的键名,如果找不到,返回false;
<?php
$arr = ['name'=>'李白','age'=>100];
$res1 = array_search('李白',$arr);
echo "<hr>";
$res2 = array_search('杜甫',$arr);
var_dump($res1,$res2);
4.7、array_flip() 键值反转。
翻转数组中所有的键以及他们关联的值。
<?php
$a = ['a'=>'red',
'b'=>'green',
'c'=>'blue',
'd'=>'yellow'
];
$res = array_flip($a);
print_r($res);
array_flip()函数返回一个反转后的的数组,如果同一个值出现了多次,最后一个键名将作为它的值,其他的键名将消失。(可用于数组去重)。
<?php
$a = ['a'=>'red',
'b'=>'green',
'c'=>'blue',
'd'=>'yellow',
'f'=>'blue',
];
$res=array_flip($a);
$res1= array_flip($res);
print_r($res1);
5.array_push,array_pop,array_shift(),array_unshift()
array_push(数组,元素)
在数组的末尾添加元素。
array_pop(数组)。
弹出数组末尾的元素。
<?php
$stu = [];
array_push($stu,'李白');
var_dump($stu);
array_push($stu,'杜甫','白居易','辛弃疾');
var_dump($stu);
echo"<br>";
$res = array_pop($stu);
print_r($stu);
print_r($res);
array_shift();将数组的第一个元素移除。
array_unshift();在数组的开头插入一个元素。
<?php
$stu = [];
array_push($stu,'李白');
array_push($stu,'杜甫','白居易','辛弃疾');
var_dump($stu);
echo"<br>";
var_dump($stu);
echo'<hr>';
array_unshift($stu,'tom');
var_dump($stu);
用数组实现队列(先进先出)。
array_push() 入队。
array_shift() 出队。
数组实现栈(后进先出,子弹夹)。
array_push() 入栈。
array_pop() 出栈。
6. array_reverse
以相反的顺序返回数组。
<?php
$a = array('a'=>'volvo',
'b'=>'bmw',
'c'=>'toyota');
print_r(array_reverse($a));
7. 数组排序函数sort,rsort,asort,arsort,ksort
7.1 sort()
对数组进行升序排序,重建数字索引,不保持原来的键值关联关系。
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
sort($list);
print_r($list);
7.2 rsort():按值进行降序排列,不保持原来的键值关联关系。
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
rsort($list);
print_r($list);
7.3 asort():对数组进行升序排序,保持键值关联。
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
asort($list);
print_r($list);
7.4 arsort():对数组进行降序排序,保持键值关联。
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
arsort($list);
print_r($list);
7.5 ksort():按键进行升序排列;
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
ksort($list);
print_r($list);
7.6 krsort(): 按键进行降序排列;
<?php
$list =['a'=>10,'c'=>8,'b'=>12];
krsort($list);
print_r($list);
7.7 natsort():自然排序。
<?php
$stu = array('stu_3','stu_1','stu_5','stu_18','stu_101');
sort($stu);
print_r($stu);
natsort($stu);
print_r($stu);
7.8 usort():自定义排序。
在第一个参数,小于,等于或者大于第二个参数时,该比较函数必须相应的返回一个,小于,等于,或者大于0的数。
<?php
$stu = array(
array('name'=>'tom','age'=>22,'score'=>77),
array('name'=>'berry','age'=>25,'score'=>88),
array('name'=>'ketty','age'=>18,'score'=>79),
array('name'=>'rose','age'=>20,'score'=>75)
);
usort($stu,function($stu1,$stu2){
if($stu1['age']<$stu2['age'])
return -1;
elseif($stu1['age']>$stu2['age'])
return 1;
else
return 0;
});
print_r($stu);
8. 数组去重array_unique()
<?php
$a =array('a'=>'red','b'=>'green','c'=>'red');
print_r(array_unique($a));
9. 数组的案例
斗地主 随机发牌 自动生成54张牌,随机分配出底牌和每个人的牌。