定义二维数组
$a[][]=20;//二维数组$c=array(20,30,[10,80]);echo '<pre>';print_r($c);

sort()升序 rsort()降序
$a=[10,50,1,2,5,80,40,58,33,22];echo '<pre>';print_r($a);sort($a);echo '<pre>';print_r($a);

asort()升序保留索引位置 asort()降序保留索引位置
$a=[10,50,1,2,5,80,40,58,33,22];echo '<pre>';print_r($a);asort($a);echo '<pre>';print_r($a);

$n['hn']=['郑州','上海','北京','广州','洛阳'];$n['bj']=['aa','bb','cc','dd'];ksort($n);print_r($n);

array_values()取出数组值索引全部重新分配,建立索引数组
$a=['aa'=>20,5,6,'zz'=>'郑州'];$b=array_values($a);//取出数组值索引全部重新分配,建立索引数组echo '<pre>';print_r($a);print_r($b);

array_merge($a,$b)将多个数组合并成一个数组k值相同将保留最后一个值
$a=[5,10,80,90,3,50,40];sort($a); //升序$b=array('aa'=>'你好',10000);$c=array_merge($a,$b);//k值相同将保留最后一个值//将多个数组合并成一个数组echo '<pre>';print_r($c);

var_dump($a); 打印出数组的类型和值
$a[][]=20;var_dump($a);

$_SERVER['SERVER_SOFTWARE'] 显示服务器,php信息,及主机系统信息
echo $_SERVER['SERVER_SOFTWARE'];

foreach 遍历输出
$arr=array('ok',100);foreach($arr as $k=>$v){echo $k.'='.$v.'<br>';}

array_search('ok',$arr);判断一个对象在一个数组中是否存在,存在了返回位置,不 存在返回假
$arr=array('ok',100);$i=array_search('ok',$arr);if($i===false){echo '不存在';}else{echo '存在,位置是:'.$i;}

从一个数组中查找一个数字,如果找到则输出数字的下标,如果找不到则输出查无此数,比array_search(60,$arr)功能强大
$arr=[10,60,20,60,50,60,60];function search($arr,$findv){$flag=false;for($i=0;$i<count($arr);$i++){if($findv==$arr[$i]){echo "找到了,下标为$i";$flag=true;}}if(!$flag){echo '查询不到';}}search($arr,60);

二分查找所谓二分查找,前提,数组已经是一个有序数组,如果不是有序的必须先排序再查找
$arr=[10,20,30,50];function bs($arr,$findv,$leftk,$rightk){if($rightk<$leftk){echo '找不到该数';return;}//找到中间这个数$middk=round(($rightk+$leftk)/2);//如果大于则向后面找if($findv>$arr[$middk]){bs($arr,$findv,$middk+1,$rightk);}elseif($findv<$arr[$middk]){bs($arr,$findv,$leftk,$middk-1);}else{echo "找到这个数 下标为$middk";}}bs($arr,50,0,count($arr)-1);

count() sizeof() 统计一个数组中有多少元素
$arr=array('ok',100);echo sizeof($arr),count($arr);echo sizeof($arr).count($arr);

count($b[1]) 二维数组统计个数
echo count($b[1]);//二维数组统计元素个数
$a=[10,50,1,2,5,80,40,58,33,[1,2,3]];$c=count($a[9]);echo $c;

implode(' ',$a);将数组以空格的情形进行合并
$a=[5,10,80,90,3,50,40];rsort($a);echo '<br>'. implode(' ',$a);//将数组以空格的情形进行合并

explode()按照一定的符号分割成数组
$arr3=explode(',','abc,bbb,333,666');echo '<pre>';print_r($arr3);

array_diff($a,$b) a-b 两个相减
$a=[10,20,30,50];$b=[10,20,50,60];$c=array_diff($a,$b);echo '<pre>';print_r($a);print_r($b);print_r($c);//a-b

array_unique($a)消除移除数组中重复值返回新数组
$a=[10,20,30,21,10,5,10];$b=array_unique($a);//消除移除数组中重复值返回新数组echo '<pre>';print_r($a);print_r($b);

array_chunk($a,3)3个为一组,把一个数组分割成1个二维数组
$a=[10,20,30,21,10,5,10];$c=array_chunk($a,3);//3个为一组,把一个数组分割成1个二维数组print_r($c);

shuffle()随机打乱数组元素的顺序,k值重新分配
echo '<pre>';$a=[10,'aa'=>20,30,21,10,5,10];print_r($a);shuffle($a); //随机打乱数组元素的顺序,k值重新分配print_r($a);

&表示引用变量参数 y引用x y和x是一个变量,谁改值都会影响另外一个
$x = 20;$y = &$x;$y = 1000;$x = 8;echo $y;$Z = 20;$y = &$Z;echo $y;
array_key_exists(1,$b)检查key 有没有 ,如果有返回true
$b=[10,20,30,21,10,5,10];if(array_key_exists(1,$b)){echo '存在';}else{echo '不存在';}
array_keys($b)返回key作为值显示
$b=[10,20,30,21,10,5,10];$k=array_keys($b);print_r($k);

array_rand($a,3)随机取出一个或多个单元,返回key
$a=[10,'aa'=>20,30,21,10,5,10];$c = array_rand($a,3);print_r($c);

array_flip ($b) 值和键的位置互换
$b=[10,20,30,21,10,5,10];$y=array_flip ($b);print_r($y);

array_rand($a,2) 随机取出 2个下标
echo '<pre>';$a=[10,'aa'=>20,30,21,10,5,10];$f=array_rand($a,2);var_dump($f);

array_sum($b)统计数组中所有元素为数字的和,字符串排除在外
$b=[10,20,30,21,10,5,10,'aa'];echo array_sum($b);//统计数组中所有元素为数字的和,字符串排除在外
array_unshift($n,123 )在$n数组的头部添加元素123
$n=[100,'aa',8000];array_unshift($n,123 );//在数组的头部添加元素print_r($n);

array_shift($n)将数组中的第一个元素移除并返回,并把移除的值赋给$first;
$n=[100,'aa',8000];$first=array_shift($n); //将数组中的第一个元素移除并返回,赋值给$first;print_r($n);

$n=[100,'aa',8000];$first=array_shift($n); //将数组中的第一个元素移除并返回,赋值给$first;

reset($n)将数组元素指针指向第一个元素并返回值,输出第一个元素 不修改数组
$n=[500,'aa',8000];echo reset($n);
end($n)将数组元素指针指向最后一个元素并返回值,输出最后一个值不修改数组
$n=[500,'aa',8000];echo end($n);
array_pop($n)将数组中的最后一个元素移除并返回
$n=[500,'aa',8000];echo array_pop($n); //将数组中的最后一个元素移除并返回,赋值给$first;print_r($n);

array_push($n,'a','b')给数组的最后添加元素
$n=[500,'aa',8000];array_push($n,'a','b');//给数组的最后添加元素print_r($n);

array_reverse($n)将输出值得前后位置颠倒
$n=[500,'aa',8000];$aa=array_reverse($n);print_r($aa) ; //前后位置颠倒

unset($n[1],$n[0])删除数组中的元素
$n=[500,'aa',8000];unset($n[1],$n[0]);//删除数组中的元素print_r($n);

文件的引入用
只能引入本地的文件
require 两者几乎是一样的,唯一不同是处理引入文件失败时,require出现编译性错误,导致程序停止,include可以开发软件用
require_once
只能引入一次,可以检查该文件是否被包含,如果被包含则不再引入,效率比较低
include
include_once
die() 语句停止=exit()
die('b ');
exit('by');//本程序执行到此结束最后输出一个字符串;
return;//本程序执行到此结束=exit(); exit;
echo 'abc';
内置函数max() 求最大值
echo max(100,20,1,2,5,900,500000);最大值
get_defined-functions()查询内置的所有函数
echo '<pre>';$f= get_defined_functions();//内置函数,自定义函数print_r($f);
声明函数,函数名ff本函数有三个形参其中$c有默认值,如果没有$c 则为10,本函数返回一个数组,有默认值的函数尽量放右边
function ff($a,$b,$c=10){return [$a,$b,$c];}$arr=ff(20,50,'ok');echo '<pre>';print_r($arr);

show_source('t.php') 显示彩色源代码 highlight_file('t.php')
show_source('t.php');//打印出某个文件的源代码
highlight_file('t.php');
md5('aaaaaa'); 32位加密系统 sha1('fffffffffffff'); 40位加密系统
$p=md5('ffffff');echo $p;$f=sha1('aaaaa');echo '<pre>';echo $f;

uniqid() 唯一id uniqid('aa')唯一id加上前缀
$p=uniqid();$e=uniqid('dgg');echo $p.'<br>'.$e;

mt_rand() 随机整数,新函数推荐使用 rand() 旧函数不推荐使用
$c=rand(); //随机整数旧函数$b=mt_rand();//随机整数,新函数推荐使用echo $c;echo '<hr>';echo $b;

递归,函数里面再调用函数定义递归函数,函数在某种条件下,再次调用本函数,防止死循环调用 面试题
用递归写出0-10
$i=0;function aa(){global $i;echo $i++.'<br>';if($i>10){return;}else{aa();}}aa();

strlen($n) 返回字节数 utf8 1个汉字为3个字节 gbk 1个汉字为2个字节
$n='zs张三';echo strlen($n); //8
mb_strlen($n) 有几个字=iconv_strlen($n,'utf-8')
$n='zs张三';echo mb_strlen($n); //4
echo 'ok1','ok2';echo 'aa'.'ab';
mb_internal_encoding('utf-8');
设定字符集
{}可以输出值
$age=20;$s="他的年龄是:{$age}year";echo $s; //输出

打印输出二维数组
$arr=array(array(0,0,0,0,0,0,8,1000),array(0,1,2,3,4,5),array(10,20,30,40,5,6,1));for($i=0;$i<count($arr);$i++){for($j=0;$j<count($arr[$i]);$j++){echo $arr[$i][$j].' ';}echo '<br>';}

打印各种图形
<!DOCTYPE html><html><head><meta charset="utf-8"><title>打印各种形状</title><meta name="keywords" content="关键字"><meta name="description" content="简介"><link rel="stylesheet" type="text/css" href="index.css"><script src=""></script></head><body><form action="ll.php" method="post">请输入层数:<input type="text" name="layer"><br>请选择形状:<select name="shape"><option value="a">矩形</option><option value="b">半金字塔</option><option value="c">金字塔</option></select><br><input type="submit" value="打印"></form><?php//webrx 编写PHP代码?></body></html>
<?php//$n 表示层数$n=$_POST['layer'];// a表示矩形,b表示一半的金字塔,c表示完整的金字塔$shape=$_POST['shape'];$starnum=5;function prints($n,$shape,$starnum=5){switch($shape){case "a":for($i=1;$i<$n;$i++){for($j=1;$j<=$starnum;$j++){echo '*';}echo '<br>';}break;case "b":for($i=0;$i<$n;$i++){for($j=1;$j<$i;$j++){echo "*";}echo '<br>';}break;case "c":break;}}prints($n,$shape);
99乘法表
for($i=1;$i<=9;$i++){for($j=1;$j<=$i;$j++){echo "$j*$i";echo ' ';}echo '<br>';}

找出一个数组里面最小的值
$arr=array(10,2,5,3,1);function findmin(&$arr){//假设第一个人就是给出最低分的裁判$minf=$arr[0];$mink=0;for($i=1;$i<count($arr);$i++){if($minf>$arr[$i]){$minf=$arr[$i];$mink=$i;}}return $mink;}$mink=findmin($arr);echo '下标为'.$mink.'给的分最低是'.$arr[$mink];
找出一个数组里面最大的值方法一
function findmax(&$arr){//假设第一个人就是给出最低分的裁判$maxf=$arr[0];$maxk=0;for($i=1;$i<count($arr);$i++){if($maxf<$arr[$i]){$maxf=$arr[$i];$maxk=$i;}}return $maxk;}$maxk=findmax($arr);echo '下标为'.$maxk.'给的分最高是'.$arr[$maxk];
求数组最大值方法二:
假设第一个值为最大值,取出数组里面的值,如果$max比他值小,就让最大值等于数组里面的值
function mmax(){$args=func_get_args();$max=array_shift($args);foreach($args as $v){if($max<$v){$max=$v;}}return $max;}echo mmax(40,10,20,90); //90
单双引号的使用
$age =18;$s1='hello=$age';$s2="hello-$age";echo $s2,$s1;

输出单引号
echo $s3="'hello'";echo $s4='\'hello\''; 'hello'

$s=<<<aakdlaja<br>dsaljdkl<br>dslf<br>aa;echo $s;


$n='china李四';echo $n{1};
输出结果h
$n='china李四';echo $n{8},$n{9},$n{10};

加上{}可以让字符串连续输出
$age=20;$s="他的年龄是:{$age}year";echo $s;

function aa(){echo '<br>';echo 'ok1'.'ok2'.'ok3';}function bb(){echo '<br>';echo 'aa','aa','oa';}$start=time();for($i=0;$i<=300000;$i++){bb();}$end=time();echo $end-$start;
. 3 , 2;
strtolower('AA') 小写 strtoupper('bb')大写
echo strtolower('AA'),strtoupper('bb');
aa,BB
trim()清除空格 rtrim()清除右空格 去除文件名 ltrim() 清除左空格去除文件格式名
$str=" hello lisi ";echo trim($str),rtrim($str),ltrim($str);
$n='aa.jpg';echo rtrim($n,'.jpg'); //aa
nl2br($s)换行转br 将字符串中\r\n换行符,直接换成<br/>
$s=<<<EOTaaaddffEOT;echo nl2br($s);

htmlspecialchars('<font>hello</font>')
直接把HTML文件输出,适合客户留言添加文章
echo htmlspecialchars('<font>hello</font>');

递归函数为重复调用自己比如
function aa(){
aa();
}
aa();
递归输出1-10
$i=0;function aa(){global $i;//定义全局变量echo $i++.'<br>';if($i>10){return;}else{aa();}}aa();

;控制最多显示多少条 php.ini 文件中添加 重启apache服务器
xdebug.max_nesting_level=600
删除目录的函数要使用递归
&可以定义全局变量和global的作用一样,可以引用变量
function aa(&$i){$i='aa';}$i='yy';aa($i);echo $i; //aa;
get_defined_functions()查询所有的内置函数
$f=get_defined_functions();echo '<pre>';print_r($f);
list($x,$y,$z)快速将数组的前三位分别赋值给$x,$y,$z
$a=[150,100,'aa',20];list($x,$y,$z)=$a;var_dump($x);var_dump($y);var_dump($z);
format 字符 | 说明 | 返回值例子 |
|---|---|---|
| 日 | --- | --- |
| d | 月份中的第几天,有前导零的 2 位数字 | 01 到 31 |
| D | 星期中的第几天,文本表示,3 个字母 | Mon 到 Sun |
| j | 月份中的第几天,没有前导零 | 1 到 31 |
| l("L"的小写字母) | 星期几,完整的文本格式 | Sunday 到 Saturday |
| N | ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
| S | 每月天数后面的英文后缀,2 个字符 | st,nd,rd 或者 th。可以和 j 一起用 |
| w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
| z | 年份中的第几天 | 0 到 365 |
| 星期 | --- | --- |
| W | ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) | 例如:42(当年的第 42 周) |
| 月 | --- | --- |
| F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
| m | 数字表示的月份,有前导零 | 01 到 12 |
| M | 三个字母缩写表示的月份 | Jan 到 Dec |
| n | 数字表示的月份,没有前导零 | 1 到 12 |
| t | 给定月份所应有的天数 | 28 到 31 |
| 年 | --- | --- |
| L | 是否为闰年 | 如果是闰年为 1,否则为 0 |
| o | ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
| Y | 4 位数字完整表示的年份 | 例如:1999 或 2003 |
| y | 2 位数字表示的年份 | 例如:99 或 03 |
| 时间 | --- | --- |
| a | 小写的上午和下午值 | am 或 pm |
| A | 大写的上午和下午值 | AM 或 PM |
| B | Swatch Internet 标准时 | 000 到 999 |
| g | 小时,12 小时格式,没有前导零 | 1 到 12 |
| G | 小时,24 小时格式,没有前导零 | 0 到 23 |
| h | 小时,12 小时格式,有前导零 | 01 到 12 |
| H | 小时,24 小时格式,有前导零 | 00 到 23 |
| i | 有前导零的分钟数 | 00 到 59> |
| s | 秒数,有前导零 | 00 到 59> |
| u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer参数, 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
| 时区 | --- | --- |
| e | 时区标识(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
| I | 是否为夏令时 | 如果是夏令时为 1,否则为 0 |
| O | 与格林威治时间相差的小时数 | 例如:+0200 |
| P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) | 例如:+02:00 |
| T | 本机所在的时区 | 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如"Eastern Standard Time",中文版会显示"中国标准时间")。 |
| Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 | -43200 到 43200 |
| 完整的日期/时间 | --- | --- |
| c | ISO 8601 格式的日期(PHP 5 新加) | 2004-02-12T15:19:21+00:00 |
| r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
| U | 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 | 参见 time() |
$w=date('w');if($w==0){echo '星期日';}else if($w=1){echo '星期一';} //输出结果星期一
goto语句为直接跳转语句





浙公网安备 33010602011771号