大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP常用操作数组的函数
创新互联建站-专业网站定制、快速模板网站建设、高性价比德兴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式德兴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖德兴地区。费用合理售后完善,10余年实体公司更值得信赖。
变量和数组的转换
compact() 将变量整合成数组
extract() 将数组中的每个值以键的名分解成变量
变量和字符串转换
explode() 以某个子串分解字符串成数组
implode() 将一维数组根据某个符号拼接成字符串
数组与数组之间关系
array_merge() 合并/并集
array_diff() 差集
array_intersect() 交集
数组值的操作
array_pop() 删除(弹出)数组最后一个值
array_push() 向数组中追加一个值
判断数组是否存在数组中
in_array() 判断一个值是否存在数组中
array_key_exists() 判断键是否存在数组中
数组去重
array_unique() 数组去重
获取二维数组中的值的集合
array_column() 获取二维数组中的值的集合
提取数组的键与值
array_values 提取数组的值构成一维数组
array_keys 提取数组的键构成一维数组
返回数组中的随机的键
array_rand() 返回数组中的随机的键
返回数组中值的数量
count() 返回数组中值的和
查询数组中的值
array_search() 查询数组中的值是否存在/in_array()有点相似
排序
sort() 排序有很多种,按键或值升降序
array_multisort() 多维数组排序
分割数组
array_chunk()
php数据写入文本文件的具体操作步骤如下:
1、使用touch命令建立一个a.php的文件。
2、用vim打开a.php,输入相关内容。
3、使用touch命令建立一个b.php的文件。
4、用vim打开b.php,输入相关内容。把表单提交的数据写入到1.txt文件中。
5、使用touch命令建立1.txt。
6、使用chmod命令将其权限设置为777。
7、打开浏览器输入localhost/a.php,看到a.php的表单了,输入相应的数据,点击提交即可。
8、提交成功后,查看一下1.txt的数据,已经写入到1.txt了文本文件。
PHP基础
Author:陈庆平 (Andych)
E-mail:ahut9923@126.com
一、PHP入门
二、PHP变量
1、php变量的命名
变量由字母,数字,下划线组成
1)变量名区分大小写
2)变量名必须以$开头
3)不能以数字开头
4)不能是系统关键字
$example , $sut_name , $stu_name_2
2、如何申明变量
$stu_name;
$stu_name,$stu_age;
二、PHP变量
3、判断变量是否设置
isset() 判断变量是否设置,返回true或false
4、定义常量
define(“”,常量值)
defined() 判断常量是否设置,返回true 或 false
三、PHP数据类型
变量的数据类型
1)布尔型(boolean)
2) 整型
3)浮点型
4)字符串型
5)数组
6)对象
7)空值
8)资源
三、PHP数据类型
算术运算符
逻辑运算符
比较运算符
赋值运算符
加一/减一运算符
四、运算符
逻辑运算符
赋值运算符
三元运算符
格式: 表达式?结果1:结果2
$c = $a$b ? “good”:”bad”
PHP基础
Author:陈庆平 (Andych)
E-mail:ahut9923@126.com
一、PHP流程控制语句
1、分支结构
格式1:
if语句
if(条件)
{
语句集;
}
一、PHP流程控制语句
格式2:
if(条件){
语句集;
}else{
语句集;
}
一、PHP流程控制语句
格式3:
If(条件1)
{
语句集1;
}else if(条件2)
{
语句集2;
}
一、PHP流程控制语句
多分支结构:
switch语句
格式:
switch(表达式)
{ case 常量: 语句;break;
case 常量2: 语句;break;
……….
default: 语句;break;
}
一、PHP流程控制语句
2、循环结构
While循环
While(表达式)
{
语句集;
}
一、PHP流程控制语句
for循环
for(表达式1; 表达式2; 表达式3)
{
语句集;
}
一、PHP流程控制语句
break 和 continue 语句
break 强行终止当前循环
continue 终止当前执行语句,继续执行循环
的下一句
PHP
Author: 陈庆平(Andych)
E-mail:ahut9923@126.com
PHP
• 数组
分类: 枚举数组、关联数组和多维数组
枚举数组:下标为整数的数组
例如:$stu[1] = “ 张三”
关联数组:用字符串做为下标的数组
例如:$stu[“name”] = “ 张三”
PHP
• 数组初始化
$stu[] = “name”
$stu[] = “sex”
注意:数组下表不需要按顺序分配
例题:排序数组元素(任意10 个数排
序)
PHP
• 使用array 函数
例如:
$stu = array(“james”,”jack”,”Toms”)
数组的起始下标可以不从0 开始
$stu = array(2=”james”,”jack”,”Toms”)
表示下标从2 开始
PHP
$arr = array[“name”=”james”,”sex”=”boy”]
• 数组的应用
1 、unset() 删除数组元素
unset($arr) 删除整个数组
unset($arr[0]) 删除单个数组元素
PHP
2 、foreach() 遍历整个数组
foreach($arr as $value)
输出数组中的元素
foreach($arr as $key=$value)
输出数组中的下标和元素
PHP
• each() 返回数组中当前的键/值对并
将数组指针向前移动一步
返回4个值 0,1,key 和 value
如:$arr = array(4="Test
user","Toms","Andych");
$foo = each($arr);
print_r($foo);
结果:
Array ( [1] = Test user [value] = Test user [0] = 4 [key] = 4 )
PHP
• list() 把数组中的值赋给一些变量
如:list($var) = $arr
注意:list 函数仅用于数组下标从0 开始
的数组
• current() 返回数组中当前元素
如:current($arr)
PHP
next() 将数组的指针移到下一个元素上
如:next($arr)
prev() 将数组的指针移到上一个元素上
如:prev($arr)
range() 自动生成一个包含指定范围单元的
数据
如:range(0,40)
PHP
count() 统计数组中元素个数
如:count($arr)
array_count_values() 统计数组中相同
元素的个数
PHP 函数
• 函数
独立完成特定功能的代码块
• 内置函数
1 、echo() 输出一个或多个字符串
如:echo “ 程序设计基础”
PHP 函数
2 、print() 输出字符串
如:print(“PHP 程序设计”)
用法同echo
注意:
35?print(“ 错误的逻辑”):print(“ 正确的逻辑”)
PHP 函数
Print start
// 任意行文字,可以包含HTML 代码
start;
输出任意行字符串
3 、include() 包含一个文件
如:include(“a.php”)
PHP 函数
include包含的文件中return语句的使用
$b = include(“a.php”);
If($b==“ok”)
{
echo “File is Ok”;
}
a.php文件
?return “ok”?
注意:在包含文件中函数执行到return将会终止。
PHP 函数
4、require() 包含一个文件
如:require(“a.php”)
功能同include方法一样
• 用户自定义函数
1、函数声明
Function func_name($args)
{
//函数体
}
PHP 函数
关键字含义:
function:用于声明自定义函数的关键字
Func_name:声明的函数名
$args:参数名称
1、定义无参函数
function fun()
{
Echo “定义无参数函数”;
}
PHP 函数
2 、定义有参函数
(1 )按值传递
$num = 100;
Function func($a)
{
$a = $a*10;
}
Func($num)
PHP 函数
(2) 按地址传递
$num = 100;
Function func($b)
{
$b = $b + 10;
}
Func($sum);
修改如下参数php.ini
allow_call_time_pass_reference = on
PHP 函数
(3)默认值传递
function func($a,$num=100)
{
return $a*$num;
}
echo func(200)
echo func(200,8);
注意:尽量不要将默认值参数定义在第一个参数
位置,容易造成定义默认值实效
PHP 函数
(4 )、函数的返回值
return value;
返回函数的内容
3 、变量函数
如果一个变量名后有括号,PHP 则搜索与变
量值相同的函数。并且执行它
PHP 函数
Function foo()
{
Echo “ 执行func() 函数” ;
}
$func = ‘foo’;
$func(); // 变量函数
显示结果:执行func() 函数
变量的作用域
• 变量的作用域
1 、global 语句
该语句允许从脚本的任何位置访问函数内部
定义的变量以及从函数内部访问函数外部的
变量
变量的作用域
//$a = 23;
function foo()
{
global $a;
$a = 32;
echo $a;
}
$func = "foo";
$func();
echo $a;
变量的作用域
2 、static 语句
静态变量仅在局部函数中存在,当程序
离开该函数时,它值不会丢失
变量的作用域
function foo()
{
$a = 0;
echo $a;
$a ++;
}
foo(); //0
foo(); //0
foo(); //0
变量的作用域
function foo()
{
static $a = 0;
echo $a;
$a ++;
}
foo(); //0
foo(); // 1
foo(); // 2
日期和时间的处理
• 获取日期和时间
date() 按指定格式返回系统的时间字符串
如:date(“d”) 返回月份中的第几天
具体参数见P103
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th" ,"nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" ( 星期日) 至 "6" ( 星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
《PHP正则表达式》
PHP 正则表达式
• 正则表达式
正则表达式是一种可以用于模式 匹配和替换的强有力的工具。
正则表达式可以让用户通过使用一系列的特殊字符构建匹配模
式,然后把匹配模式与数据文件、程序输入以及WEB 页面的表单输
入等目标对象进行比较,根据比较对象中是否包含匹配模式,执
行相应的程序。
例: ^http 表示匹配以http 开头的所有字符
[a-z] 匹配所有小写字符
abc 匹配字符串abc
PHP 正则表达式
• 正则表达式的元字符
PHP 正则表达式
• 匹配正则表达式模式
preg_match(pattern,subject)
表示在subject字符串中搜索与pattern给出的正则表达式相匹配的
内容.该函数返回pattern所匹配的次数(0次或1次).0次表示没有匹配
结果,函数返回一个false
例如:
$str = “php is a good language”;
preg_match(“/php/”,$str);
PHP 正则表达式
模式,是正规表达式最基本的元素,它们是一组描述字符串特
征的字符。模式可以很简单,由普通的字符串组成,也可以非常
复杂,往往用特殊的字符表示一个范围内的字符重复出现,或表
示上下文。我们先看一些正则表达式中的特殊字符。
• 字符: ^
意义:表示匹配的字符必须在最前边。
例如:
preg_match(/^A/,”A good language”) // 匹配成功
• 字符: $
意义:与^ 类似,匹配最末的字符。
例如:
preg_match(/t$/,”eat”) // 匹配成功
PHP 正则表达式
• 字符*
意义:匹配* 前面的字符0 次或n 次。
例如: preg_match(“/do*g/”,”doog”) // 匹配成功
• 字符+
意义:匹配+ 号前面的字符1 次或n 次。等价于{ 1, } 。
例如:preg_match(“/do+g”,”dg”) // 不匹配
• 字符?
意义:匹配? 前面的字符0 次或1 次。
例如:preg_match(“/do?g/”,”dg”) // 匹配
PHP 正则表达式
• 字符.
意义:( 小数点) 匹配除换行符外的所有单个的字符。
例如:/.n/ 匹配“nay, an” 中的‘an’ ,但不匹配‘nay’ 。
• 字符(x)
意义:匹配‘x’ 并记录匹配的值。
例如:/(foo)/ 匹配和记录“foo bar.” 中的‘foo’ 。匹配子串能被结果数组中的素[1], ...,[n] 返回
• 字符x│y
意义:匹配'x' 或者'y' 。
例如:/green│red/ 匹配"green apple" 中的'green' 和"red apple." 中的'red' 。
PHP 正则表达式
• 字符{ n }
意义:这里的n是一个正整数。匹配前面的n个字符。
例如:/a{ 2 }/不匹配"candy,"中的'a',但匹配"caandy," 中的所有'a'和"caaandy."中前面的两个'a'。
• 字符{ n, }
意义:这里的n是一个正整数。匹配至少n个前面的字符。
例如:/a{ 2, }不匹配"candy"中的'a',但匹配"caandy"中的所有'a'和"caaaaaaandy."中的所有'a'
• 字符{ n,m }
意义:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。
例如:/a{ 1,3 }/不匹配"cndy"中的任何字符,但匹配 "candy,"中的'a',"caandy," 中的前面两个 'a'和"caaaaaaandy"中前面的三个'a',注意:即使"caaaaaaandy" 中有很多个'a',但只匹配前面的三 个'a'即"aaa"。
PHP 正则表达式
• 字符[xyz]
意义:一字符列表,匹配列出中的任一字符。你可以通过连字符- 指出一个字符范围。
例如:[abcd] 跟[a-d] 一样。它们匹配"brisket" 中的'b' 和"ache" 中的‘a’,’c' 。
• 字符[^xyz]
意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符- 指出一 字符范围。
例如:[^abc] 和[^a-c] 等价,它们最早匹配"brisket" 中的'r' 和"chop." 中的'h' 。
• 字符 空格
意义:匹配一个空格( 不要与b 混淆)
PHP 正则表达式
• 预定义字符和字符类
• \d 数字
表示匹配数字0-9中任一字符,功能类似[0-9]
• \D 非数字
表示匹配一个非数字,功能类似[^0-9]
• \w 单词字符
表示匹配一个单词字符.功能类似[a-zA-Z0-9]
• \W 非单词字符
表示匹配一个非单词字符
PHP 正则表达式
• 字符\b
意义:匹配一个单词的分界线,比如一个空格( 不要与空格混淆)
例如:/\bno/ 匹配"noonday" 中的'no' ,/ly\b/ 匹配"possibly yesterday." 中的'ly' 。
PHP
Author: 陈庆平(Andych)
E-mail:ahut9923@126.com
PHP 字符串
• 格式化字符串
1 、trim() 删除字符串开始和结束位置的空格
格式:trim(str)
2 、ltrim() 删除字符串左边的空格
格式:ltrim(str)
PHP 字符串
3 、 rtrim() 删除字符串右边的空格
格式:rtrim(str)
PHP 字符串
4 、strtolower() 字符串转换为小写
格式:strtolower(str)
5 、strtoupper() 字符串转换为大写
格式:strtoupper(str)
6 、ucfirst() 将函数的第一个字符转换为大写
格式:ucfirst(str)
PHP 字符串
7 、ucwords() 将每个单词的首字母转换为大写
格式:ucwords(str)
• HTML 文本格式输出
1 、nl2br() 将字符串中的\n 转换成br
格式:nl2br(str)
str 中包含\n
PHP 字符串
2、htmlspecialchars() HTML字符原样输出
格式:htmlspecialchars(str,quote_style)
str:要转换的字符
quote_style:转换方式,主要对单引号和双引
号进行转换。值如下:
ENT_COMPAT 双引号被转换
ENT_QUOTES 单引号和双引号都被转换
ENT_NOQUOTES 任何一个引号都不被转换
主要用在防止恶意脚本注入和数据库数据的存储
PHP 字符串
3 、strip_tags() 去除字符串中PHP 和HTML 代码
格式:strip_tags(str,[char])
str :要去除的字符串
char :要保留字符串
如:strip_tags(“a href=‘’new/a”,a)
PHP 字符串
• 和数据库相关
1 、addslashes() 按照一定规则将字符串进行转义
格式:addslashes($str)
如:addslashes(“Hello ,’jack’”)
结果:Hello,\’jack\’
magic_quotes_gpc = On 自动对 get post cookie
的内容进行转义
get_magic_quotes_gpc ()检测是否打开
magic_quotes_gpc
PHP 字符串
2 、stripslashes() 去除字符串中的反斜杠
格式:stripslashes($str)
• 字符串的连接和分割
1 、explode() 按指定分割符将字符串分开
格式:explode(str,$str[,limit])
str :分割符
$str :要分割的字符串
limit :分割后数组长度(可选)
PHP 字符串
2 、implode() 将字符串按指定字符连接
成一个字符串
格式:implode(str,$arr)
str :连接符
$arr :字符串数组
注意:implode() 函数有个别名函数join
PHP 字符串
3、strtok() 从指定的字符串中去除指定的字符
格式:strtok($str,str)
注意:若想输出所有内容,则以后函数中不需
要再加$str了。
如:$str = aa@a.com;bb@a.com;cc@a.com
$newstr = strtok($str,”;”)
while($newstr )
{
echo $newstr;
$newstr = strtok(”;”)
}
PHP 字符串
4 、substr() 在指定的字符串中取出规定的字符
串。
格式:substr($str,start[,length])
$str :指定的字符串
strat :起始位置
length :取出的字符串的长度。该参数可选
PHP 字符串
• 字符串比较
1 、strcmp() 字符串比较, 返回值为0 ,正数和负数
格式:strcmp($str1,$str2)
注意:比较的字符串是区分大小写的
2 、strcasecmp() 功能同上,但不区分大小写
PHP 字符串
3 、strnatcmp() 按自然排序比较字符串
格式:strnatcmp($str1,$str2)
如:strnatcmp(“4”,”14”) // 结果小于0
strcmp(“4”,”14”) // 结果大于0
4 、strnatcasecmp() 用法同上,只是不区分大
小写
PHP 字符串
• 字符串查找
1 、strstr() 在指定的字符串中查找指定的字符
格式:strstr($str1,$str2)
如:$email = “ahut9923@126.com";
$domain = strstr($email,"@");
echo $domain; //@126.com
注意:如果含有多个,则从第一次出现的位置
开始输出,若没有则返回FALSE
PHP 字符串
2 、stristr() 功能同strstr ,只是不区分大小写
3 、strrchr() 从最后一次搜索到的字符处返回
用处:取路径中文件名
$path = "c:\\a\\b\\aa\\a.html";
$filename = strrchr($path,"\\");
echo $ filename;
PHP 字符串
• 定位字符串
1 、strpos() 在指定的字符串中查找子字符串第
一次出现的位置,找不到返回false
格式:strpos($str1,$str2)
如:echo strpos(“Hello”,”l”)
2 、strrpos() 功能同上,搜索子字符串最后一次
出现的位置
PHP 字符串
• 字符串替换
1、str_replace() 将新的字符串替换目标字符串
中指定的字符串
格式:str_replace($search,$replace,$subject)
如:
$subject = "Hell jack";
echo str_replace("Hell","Hello:",$subject);
$search:要被替换的字符串
$replace:替换的字符串
$subject:目标字符串
PHP 字符串
2 、substr_replace() 查找和替换子字符串
格式:substr_replace($Str,$rep,$start[,length])
$str :原始字符串
$rep :替换后的新字符串
$start :起始位置
$length :替换的长度,该项可选
如:$subject = "Hell jack";
echo substr_replace($subject,"Hell",1);
// 结果:HHell
PHP函数
Author:陈庆平(Andych)
E-mail:ahut9923@126.com
PHP函数
• 函数
1、定义
独立完成特定功能的代码块
2、特性
1)无须在引用函数之前定义
2)函数不能被重载。(即不能定义名称相同的函数)
3)函数参数个数不能变化
4)PHP支持默认参数函数
PHP函数
• 内置函数
1、echo()函数
功能:输出一行字符串
格式:echo “字符串”;
2、print()函数
功能:输出一行字符串
格式:print ”字符串”;
PHP函数
3、include / require 函数
功能:包含并运行指定的文件 。
格式:include “a.php”;
说明:如果上面的函数用在条件语句中,一定要写在{}内.
被包含的文件中可以使用return 语句。
If($a==$b)
{
include “a.php”;
}else{
include “b.php”;
}
PHP函数
• 自定义函数
1、函数声明
格式:
function func_name($arg1,$arg2…$argn)
{
语句集;
return value;
}
根据函数是否包含参数:无参函数 和 有参函数
PHP函数
2、无参函数
例:定义函数,计算100以内偶数之和
function func_sum()
{
$sum = 0;
for($a=0;$a=100;$a++)
{
if($a%2==0){ $sum += $a;}
}
}
func_sum(); //调用函数
PHP函数
3、有参函数
1)按值传递
例:写一函数,求任何两个数的和
function func_name($a,$b)
{
$sum = $a + $b;
echo $sum;
}
func_name(32,34); //调用函数
PHP函数
2)按地址传递
例:求给定数乘以15以后的结果。
$myNum = 100;
function func_mul($a)
{
echo $a * 15;
}
func_mul($myNum); //函数调用,带地址符号
echo $myNum;
低版本不默认支持地址传递,修改如下参数php.ini
allow_call_time_pass_reference = on
PHP函数
3)默认值函数
定义函数时,给参数赋值;在调用函数若不指定参数内容,
则自动调用参数默认值。
例:
function func_def($style=“默认值”)
{
echo $style;
}
func_def(); //不带参数,输出 “默认值”
func_def(“赋给参数”); //给参数,输出 “赋给参数”
PHP函数
4)函数返回值
功能: 函数返回值
格式: return “值”
例:
function func_returnval()
{
return “return value”;
php的概述
了解什么是php,php语言有什么优势,php语言有哪些特性,php的发展趋势,php应用的领域等等问题。
如何学好php
1.要明确自己的学习目标和学习方向,认准这门语言,按照自己的学习方法认真学习。
2.选择一个合适自己的php开发工具。
3.多读php方面的书籍,扎实自己的基础。
4.了解php的设计模式,学习一些模式可以更好的把握项目的整体结构。
5.不能急躁,遇到问题要冷静,多向他人请教。
6.php函数很多,需要下载一个php中文手册和MySQL手册,方便查询相关函数。
7.也可以看一下教学视频,看看他人是如何编程的。
8.要坚持不懈,持之以恒。
php的环境是搭建的和开发工具
网上有专门的讲解php环境是如何搭建的,这里不详述了。
开发工具有Dreamweaver,ZendStudio,EditPlus2,Delphi for PHP等
选择一款适合自己的使用。
php语言的基础
1.php的标记风格
2.php注释的应用
3.php数据类型
4.php的常量和变量
5.php的运算符
6.php的表达式
7.php的函数
8.php的编码规范
这些都是php语言的基础,php入门必须要掌握,如果你学过其他语言,学起这些来应该感觉非常简单,php语言是很容易上手的。
流程控制语句
像 if语句,switch ..case多重判断语句,while循环语句,do... while循环语句,for循环语句,foreach循环语句都是必须要掌握的。
字符串操作
针对字符串的一系列操作,如去除字符串首位空格和特殊字符,转义,还原字符串数据,获取字符串长度,截取字符串,比较字符串,查询字符串,替换字符串,合成字符串这些,都需要掌握。
正则表达式
了解什么是正则表达式,掌握正则表达式的语法规则,像行定位符,单词定界符,选择字符,排除字符等等都必须要掌握。
php的数组
了解什么是数组,掌握声明数组的方法,了解数组的类型,能够输出数组,遍历数组,以及熟练运用针对数组的一系列操作。
php与Web页面的交互
学会创建表单,在普通的Web页中插入表单,掌握获取表单数据的两种方法,POST()方法和GET()方法,php参数传递的方法等等。
php与JavaScript交互
了解什么是JavaScript,JavaScript语言基础需要掌握,如JavaScript流程控制语句,JavaScript事件,在php中调用JavaScript脚本等。
此外,还有核心技术需要掌握,Cookie和Session,图形图像处理技术,文件系统,加密技术,面向对象,MySQL数据库等等都需要掌握。
PHP 删除空数组常用解决方案:
利用foreach循环判断来删除为空的数组,注意:如果数组元素非常多的时候,使用循环处理效率会降低。示例如下:
?php
//定义数组
$arr=array(
"id"=1,
"name"="zhidao",
"url"=""
);
//循环判断
foreach($arr as $k=$v){
if(!$v){//判断是否为空(false)
unset($arr[$k]);//删除
}
}
print_r($arr);//Array ( [id] = 1 [name] = zhidao )
?
使用array_filter函数删除。array_filter是利用回调函数来对数组进行过滤,如果没有回调函数,那么默认就是删除数组中值为false的元素。示例如下:
?php
//定义数组
$arr=array(
"id"=1,
"name"="zhidao",
"url"=""
);
//array_filter函数对数组进行过滤
$newArr=array_filter($arr);
print_r($newArr);//Array ( [id] = 1 [name] = zhidao )
?
1查找字符位置函数: strpos($str,search,[int]):查找search在$str中的第一次位置从int开始; stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感 strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int 2、提取子字符函数(双字节) submit($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。 strstr($str1,$str2):从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。 stristr() 功能同strstr,只是不区分大小写。 strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名 3、替换字符串 str_replace(search,replace,$str):从$str中查找search用replace来替换 str_irreplace(search,replace,$str): strtr($str,search,replace):这个函数中replace不能为""; substr_replace($Str,$rep,$start[,length])$str原始字符串,$rep替换后的新 字符串,$start起始位置,$length替换的长度,该项可选 4、字符长度 int strlen($str) 5、比较字符函数 int strcmp($str1,$str2):$str1=$str2分别为正1,0,-1(字符串比较) strcasecmp() 同上(不分大小写) strnatcmp("4","14") 按自然排序比较字符串 strnatcasecmp() 同上,(区分大小写) 6、分割成数组函数 str_split($str,len):把$str按len长度进行分割返回数组 split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次,后面的将不分割 expload(search,$str[,int]) 7、去除空格:ltrim、rtrim、trim 8、加空格函数 chunk_split($str,2);向$str字符里面按2个字符就加入一个空格; 9、chr、ord--返回指定的字符或ascii 10、HTML代码有关函数 nl2br():使\n转换为br。 strip_tags($str[,'p']):去除HTML和PHP标记 在$str中所有HTML和PHP代码将被去除,可选参数为html和PHP代码作用是将保留 可选参数所写的代码。 如:echo strip_tags($text, 'brp'); htmlspecialchars($str[,参数]):页面正常输出HTML代码参数是转换方式 11、字符大小写转换函数 strtolower($str) 字符串转换为小写 strtoupper($str) 字符串转换为大写 ucfirst($str) 将函数的第一个字符转换为大写 ucwords($str) 将每个单词的首字母转换为大写 12、数据库相关函数 addslashes($str):使str内单引号(')、双引号(")、反斜线(\)与 NUL 字符串转换为\',\",\\。 magic_quotes_gpc = On 自动对 get post cookie的内容进行转义 get_magic_quotes_gpc()检测是否打开magic_quotes_gpc stripslashes() 去除字符串中的反斜杠 13、连接函数 implode(str,$arr) 将字符串数组按指定字符连接成一个字符串;implode()函数有个别名函数join addcslashes —— 为字符串里面的部分字符添加反斜线转义字符 addslashes —— 用指定的方式对字符串里面的字符进行转义 bin2hex —— 将二进制数据转换成十六进制表示 chr —— 返回一个字符的ASCII码 chunk_split —— 按一定的字符长度将字符串分割成小块 convert_cyr_string —— 将斯拉夫语字符转换为别的字符 convert_uudecode —— 解密一个字符串 convert_uuencode —— 加密一个字符串 count_chars —— 返回一个字符串里面的字符使用信息 crc32 —— 计算一个字符串的crc32多项式 crypt —— 单向散列加密函数 explode —— 将一个字符串用分割符转变为一数组形式 fprintf —— 按照要求对数据进行返回,并直接写入文档流 get_html_translation_table —— 返回可以转换的HTML实体 html_entity_decode —— htmlentities ()函数的反函数,将HTML实体转换为字符 htmlentities —— 将字符串中一些字符转换为HTML实体 htmlspecialchars_decode —— htmlspecialchars()函数的反函数,将HTML实体转换为字符 htmlspecialchars —— 将字符串中一些字符转换为HTML实体 implode —— 将数组用特定的分割符转变为字符串 join —— 将数组转变为字符串,implode()函数的别名 levenshtein —— 计算两个词的差别大小 localeconv —— 获取数字相关的格式定义 ltrim —— 去除字符串左侧的空白或者指定的字符 md5_file —— 将一个文件进行MD5算法加密 md5 —— 将一个字符串进行MD5算法加密 metaphone —— 判断一个字符串的发音规则 money_format —— 按照参数对数字进行格式化的输出 nl_langinfo —— 查询语言和本地信息 nl2br —— 将字符串中的换行符“\n”替换成“br /” number_format —— 按照参数对数字进行格式化的输出 ord —— 将一个ASCII码转换为一个字符 parse_str —— 把一定格式的字符串转变为变量和值 print —— 用以输出一个单独的值 printf —— 按照要求对数据进行显示 quoted_printable_decode —— 将一个字符串加密为一个8位的二进制字符串 quotemeta —— 对若干个特定字符进行转义 rtrim —— 去除字符串右侧的空白或者指定的字符 setlocale —— 设置关于数字,日期等等的本地格式 sha1_file —— 将一个文件进行SHA1算法加密 sha1 —— 将一个字符串进行SHA1算法加密 similar_text —— 比较两个字符串,返回系统认为的相似字符个数 soundex —— 判断一个字符串的发音规则 sprintf —— 按照要求对数据进行返回,但是不输出 sscanf —— 可以对字符串进行格式化 str_ireplace —— 像str_replace()函数一样匹配和替换字符串,但是不区分大小写 str_pad —— 对字符串进行两侧的补白 str_repeat —— 对字符串进行重复组合 str_replace —— 匹配和替换字符串 str_rot13 —— 将字符串进行ROT13加密处理 str_shuffle —— 对一个字符串里面的字符进行随机排序 str_split —— 将一个字符串按照字符间距分割为一个数组 str_word_count —— 获取字符串里面的英文单词信息 strcasecmp —— 对字符串进行大小比较,不区分大小写 strchr —— 通过比较返回一个字符串的部分strstr()函数的别名 strcmp —— 对字符串进行大小比较 strcoll – 根据本地设置对字符串进行大小比较 strcspn —— 返回字符连续非匹配长度的值 strip_tags —— 去除一个字符串里面的HTML和PHP代码 stripcslashes —— 反转义addcslashes()函数转义处理过的字符串 stripos —— 查找并返回首个匹配项的位置,匹配不区分大小写 stripslashes —— 反转义addslashes()函数转义处理过的字符串 stristr —— 通过比较返回一个字符串的部分,比较时不区分大小写 strlen —— 获取一个字符串的编码长度 strnatcasecmp —— 使用自然排序法对字符串进行大小比较,不区分大小写 strnatcmp —— 使用自然排序法对字符串进行大小比较 strncasecmp —— 对字符串的前N个字符进行大小比较,不区分大小写 strncmp —— 对字符串的前N个字符进行大小比较 strpbrk —— 通过比较返回一个字符串的部分 strpos —— 查找并返回首个匹配项的位置 strrchr —— 通过从后往前比较返回一个字符串的部分 strrev —— 将字符串里面的所有字母反向排列 strripos —— 从后往前查找并返回首个匹配项的位置,匹配不区分大小写 strrpos —— 从后往前查找并返回首个匹配项的位置 strspn —— 匹配并返回字符连续出现长度的值 strstr —— 通过比较返回一个字符串的部分 strtok —— 用指定的若干个字符来分割字符串 strtolower —— 将字符串转变为小写 strtoupper —— 将字符串转变为大写 strtr —— 对字符串比较替换 substr_compare —— 对字符串进行截取后的比较 substr_count —— 计算字符串中某字符段的出现次数 substr_replace —— 对字符串中的部分字符进行替换 substr —— 对字符串进行截取 trim —— 去除字符串两边的空白或者指定的字符 ucfirst —— 将所给字符串的第一个字母转换为大写 ucwords —— 将所给字符串的每一个英文单词的第一个字母变成大写 vfprintf —— 按照要求对数据进行返回,并直接写入文档流 vprintf —— 按照要求对数据进行显示 vsprintf —— 按照要求对数据进行返回,但是不输出 wordwrap —— 按照一定的字符长度分割字符串 1,快速创建数组的函数range() 比如range()函数可以快速创建从1到9的数字数组: ?php $numbers=range(1,9); //用range直接创建1~9共9个数字组成的数组,以“1”开始“9”结束。 echo $numbers[1]; //输出创建的第二个数组值:2; echo $numbers[0];则输入第一个值:0。 ? 当然,使用range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组: ?php $numbers=range(a,z); foreach ($numbers as $mychrs) //遍历$numbers数组,每次循环当前单元值被赋给$mychrs echo $mychrs." "; //output a b c d e f g h i j k l m n o p q r s t u v w x y z ? //foreach是一种遍历数组的简便方法,foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误,它有两种格式: foreach (array_expression as $value) statementforeach (array_expression as $key = $value) statement 第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key 使用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。 range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创建的数组元素是:1、4、7 2,PHP中常规数组的排序 一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功能函数为sort()。比如: ?php $people=array('name','sex','nation','birth'); foreach ($people as $mychrs) echo $mychrs." "; sort($people); echo "br /---排序后---br /"; foreach ($people as $mychrs) echo $mychrs." "; ? 升序排序后的数组元素显示为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z) Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如: ?php echo "---按数字升序排序---br /"; $num2=array('26','3',); sort($num2,SORT_NUMERIC); foreach ($num2 as $mychrs) echo $mychrs." "; echo "br /---按字符升序排序---br /"; $num3=array('26','3'); sort($num3,SORT_STRING); foreach ($num3 as $mychrs) echo $mychrs." "; ? SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。 PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如: $num1=range(1,9); rsort($num1); //这里其实就相当于range(9,1) 3,PHP中关联数组的排序 PHP除了支持数字索引数组以外,还支持相关数组。比如如下数组就是一个相关(关联)数组: $peoples=array('xm'='name','xb'='sex','mz'='nation','cs'='birth'); 使用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可使用asort()函数表示按元素值升序排序,关联数组中最主要的则是可按照关键字(如xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。 ?php $peoples=array('xm'='name','xb'='sex','mz'='nation','cs'='birth'); foreach ($peoples as $mychrs) echo $mychrs." "; echo "br /--按元素值升序排列--br /"; asort($peoples); foreach ($peoples as $mychrs) echo $mychrs." "; echo "br /--按关键字升序排列--br /"; ksort($peoples); foreach ($peoples as $mychrs) echo $mychrs." "; ? 和常规数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、ksort()函数和krsort()函数。 记忆:原型函数是sort(),其中a、k表示关联数组相关必须前置,反向排序使用r修饰。 4,PHP数组元素随机排序 PHP中使用shuffle()函数将数组元素进行随机的重新排序,每次都会显示不同的排序组合,比如: ?php $fer=array('cnbruce','cnrose','cnjames','cnanne'); shuffle($fer); //随即排序,每刷新一次页面则进行一次随机排序。 foreach ($fer as $mychrs) echo $mychrs." "; ? 5,PHP数组按原顺序反向排序 PHP中可使用array_reverse()函数将数组元素按原顺序反向排序。比如: ?php $fer=array('cnbruce','cnrose','cnjames','cnanne'); foreach ($fer as $mychrs) echo $mychrs." "; $fer=array_reverse($fer); //将数组内元素按原顺序反向排序 echo "br /--按原顺序反向--br /"; foreach ($fer as $mychrs) echo $mychrs." "; ? output: cnbruce cnrose cnjames cnanne --按原顺序反向-- cnanne cnjames cnrose cnbruce 注意这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为array_reverse()是返 回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比 如:$fer_bak=array_reverse($fer_bak);