数学函数
//abs() 求绝对值
echo abs(‘-100’);//100
//ceil() 进一法取整
echo ceil(3.14);// 4
//floor()舍去法求整
echo floor(3.14);// 3
//fmod() 浮点数取余 输出结果为0.5,即5.7/1.3,余数为0.5,得出的整数为4,总体算法为:4*1.3+0.5=5.7;
$x=5.7;$y=1.3; $r=fmod($x,$y);
echo $r; // 0.5
//pow() 返回数的N次方
echo pow(2,3); // 8
//round() 浮点数四舍五入
echo round(3.4).‘<br>’;// 3
echo round(3.5);// 4
//sqrt() 求平方根
echo sqrt(9); // 3
//max() 求最大值
echo max(1,2,3,4,5,6).‘<br>’; // 6
echo max(array(1,2,3,4,5,6,6)).‘<br>’; // 6
print_r(max(array(3,4,5,6,7),array(4,5,6,7,8,8)));//Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 7 [4] => 8 [5] => 8 )
//min() 求最小值
echo min(3,45,5,6,7);// 3
//mt_rand() 更好的随机数
echo mt_rand(0,255);// 随机
//rand() 产生随机数
echo rand(0,255); // 随机
//pi() 获取圆周率值
echo pi().‘<br>’; //3.1415926535898
echo M_PI; //3.1415926535898
字符串函数
/*~~~~~~~~去空格或其他字符串~~~~~~~~~~*/
//trim() 删除字符串两端的空格和其他预定义字符,当两边有空格时,无法对指定字符进行删除
$str=” ☆ hello☆worldnihao ☆ “;
var_dump($str).‘<br>’;
//string ‘ ☆ hello☆worldnihao ☆ ‘ (length=32)
var_dump(trim($str)).‘<br>’;
//string ‘☆ hello☆worldnihao ☆’ (length=28)
var_dump(trim($str,‘☆’)).‘<br>’;
//string ‘ ☆ hello☆worldnihao ☆ ‘ (length=32)
//ltrim() 删除字符串左边的空格或其他预定义字符
$str=“☆ hello☆worldnihao ☆”;
var_dump(ltrim($str,‘☆’)).‘<br>’;
//string ‘ hello☆worldnihao ☆’ (length=25)
var_dump(rtrim($str,‘☆’)).‘<br>’;
//string ‘☆ hello☆worldnihao ‘ (length=25)
//chop() rtrim()的别名
var_dump(chop($str,‘☆’));
//string ‘☆ hello☆worldnihao ‘ (length=25)
//dirname() 返回路径中的目录部分
echo dirname(“c:/testweb/home.php”);
//c:/testweb
/*~~~~~~~~~字符串生成与转化~~~~~~~~~~~*/
//str_pad() 使用另一个字符串填充字符串到指定长度,默认右填,STR_PAD_LEFT左填充,STR_PAD_BOTH两侧填充
$str=‘hello world’;
echo str_pad($str,20,‘.’).‘<br>’;
//hello world………
echo str_pad($str,20,‘.’,STR_PAD_LEFT);
//………hello world
echo str_pad($str,20,‘.’,STR_PAD_BOTH);
//….hello world…..
//str_repeat() 重复使用指定字符串
echo str_repeat(‘.’,13); //………….
//str_split() 把字符串分割到数组中
print_r(str_split(‘hello’)); //Array ( [0] => h [1] => e [2] => l [3] => l [4] => o )
//strrev() 反转字符串
echo strrev(‘hello world’); //dlrow olleh
//wordwrap() 按照指定长度对字符串进行折行处理,使用var_dump输出,echo不管用
$str=‘An example on a long word is: Supercalifragulistic’;
var_dump(wordwrap($str,17));
/*结果为:string ‘An example on a
long word is:
Supercalifragulistic’ (length=50)
*/
//str_shuffle() 随机打乱字符串中所有字符
echo str_shuffle(‘hello world’);//ewllorod hl
//parse_str() 将字符串解析成变量 要解析的字符串|存储变量的数组名称
parse_str(‘id=23&name=john%20adams’,$a);
print_r($a);//Array ( [id] => 23 [name] => john adams )
//number_format() 通过千分位组来格式化数字 要格式化的数字|规定多少个小数|规定用作小数点的字符串|规定用作千位分隔符的字符串
echo ‘100000’.‘<br>’;//100000
echo number_format(100000,2).‘<br>’;
// 100,000.00
echo number_format(100000,2,‘,’,‘.’);
//100.000,00
/*~~~~~~~~~~~~大小写转换~~~~~~~~~~~~*/
//strtolower() 字符串转化为小写
echo strtolower(‘Hello World’);//hello world
//strtoupper() 字符串转化为大写
echo strtoupper(‘Hello World’);//HELLO WORLD
//ucfirst() 字符串首字母大写
echo ucfirst(‘hello world’);//Hello world
//ucwords() 字符串每个单词首字母转化为大写
echo ucwords(‘hello world’);//Hello World
/*~~~~~~~~~~html标签相关~~~~~~~~~~~~~*/
//htmlentities() 把字符转为html实体。可以将所有的非ASCII码转换成对应实体代码。比htmlspecialchars转义的更多。
$str=‘John & Adams’;
var_dump(htmlentities($str));
//string ‘John & Adams’ (length=16)
//htmlspecialchars() 预定义字符转化为html编码。预定义的字符是:&(和号)成为& “(双引号)成为 " ‘(单引号)成为'<(小于) 成为 <>(大于)成为> ENT_COMPAT:默认,仅编码双引号。ENT_QUOTES:编码双引号和单引号。ENT_NOQUOTES:不编码任何引号。
$str=“Jo<h>n & ‘Ad’ams”;
var_dump(htmlspecialchars($str)).‘<br>’;
//string ‘Jo<h>n & ‘Ad’ams’ (length=26)
var_dump(htmlspecialchars($str,ENT_QUOTES)).‘<br>’;//string ‘Jo<h>n & 'Ad'ams’ (length=36)
//nl2br() \n转义为<br>标签 请使用双引号,单引号不解析\n 标签
echo nl2br(“wa\nngde\nbao”);
/*wa
ngde
bao*/
//strip_tags() 剥去html、xml以及PHP的标签
echo strip_tags(“hello <b>world</b>”);
//hello world
//addcslashes() 在指定的字符前添加反斜线转义字符串中的字符
$str=“hello,my name is ‘John'”;
echo $str.‘<br>’;//hello,my name is ‘John’
echo addcslashes($str,‘m’).‘<br>’;
//hello,\my na\me is ‘John’
//stripcslashes() 删除由addcslashes()添加的反斜线
echo stripcslashes(“hello,\m\y na\me i\s ‘John'”).‘<br>’; //hello,my name is ‘John’
//addslashes() 指定预定义字符前添加反斜线
echo addslashes(“hello,my name is ‘John'”);
//hello,my name is \’John\’
//stripslashes() 删除由addslashes() 添加的转义字符
echo stripslashes(“hello,my name is \’John\'”);
//hello,my name is ‘John’
//echo stripslashes(“hello,my name is \’John\’,hello,\m\y na\me i\s ‘John'”);删除反斜线和删除转义字符的的功能基本相同,一般情况下也可以通用,不过最好按照规则来使用!
//quotemeta() 在字符串中某些预定义的字符前添加反斜线!注意:.和?能被添加反斜线,,不能被添加反斜线!
$str=“hello world.do you like me?”;
echo quotemeta($str);
//hello world\.do you like me\?
//chr() 从指定的ASCII 值返回字符
echo chr(50);// 2
//ord() 返回字符串第一个字符的ASCII值
echo ord(‘hello’); // 104
/*~~~~~~~~~~~~字符串比较~~~~~~~~~~~~~~*/
/*字符串比较统一说明:字符串匹配,先比较第一个,如果第一个不相同,比较大小,并终止后面的比较,如果第一个相同,则跳过此字符继续比较。直到遇到不同的字符为止!*/
//strcmp() 区分大小写比较两字符串 注意:区分大小写的比较函数,其输出值与所对应的ASCII值无关,只比较大小写和字符串长度,小写字母大于大写字母,例如a>A,如果前面所有的字符都一样,包括大小写,长度也相同,则输出结果为0.如果长度不相同,则长度越大的字符串其所对应的值越大,多出多少个字符(5),则输出多少个数(5)
echo strcmp(‘0elloooo’,‘0ello’).‘<br>’;// 3
echo strcmp(‘0ELLOoo’,‘hello’).‘<br>’;// -1
echo strcmp(‘0ELLO’,‘9ELLO’).‘<br>’;// -1
//strcasecmp() 不区分大小写比较两字符串。注意:不区分大小写的比较函数,其往往以字符所对应的ASCII进行比较大小,H与h两个字符所对应的ASCII值以h为标准,比较时,对其所对应的ASCII值进行相减即可,记住:0-9>a-z;
echo strcasecmp(‘0ellooo’,‘HELLO’);// -56
echo strcasecmp(‘0bllooo’,‘hELLO’);// -56
echo strcasecmp(‘0fllooo’,‘aLLO’); // -49
echo strcasecmp(‘Lfllooo’,‘HELLO’); // 4
//strncmp() 比较字符串前N个字符,区分大小写 注意:其输出值与所对应的ASCII值无关,只比较大小写,小写字母大于大写字母,例如a>A,如果前面所有的字符都一样,则输出结果为0.
echo strncmp(‘hello world’,‘hello earth’,7);// 1
echo strncmp(‘hello World’,‘hello world’,7);
// -1
//strncasecmp() 比较字符串前n个字符,不区分大小写 注意:在N个字符内,如果出现不同的字符,则停止继续比较。不区分大小写的比较函数,其往往以字符所对应的ASCII进行比较大小,H与h两个字符所对应的ASCII值以h为标准,比较时,对其所对应的ASCII值进行相减即可,记住:0-9>a-z;
echo strncasecmp(‘hello world’,‘hello earth’,9);
// 18
//strnatcmp() 自然顺序法比较字符串长度,区分大小写,小写字母大于大写字母,9大于2,长度大的字符串大于长度小的字符串,输出结果只有-1 0 1 三种结果
echo strnatcmp(‘wangdebao’,‘Wangdebao’);// 1
echo strnatcmp(‘9anbaooo’,‘2wwngdebao’);// 1
echo strnatcmp(‘wangde000’,‘wangde’);// 1
//strnatcasecmp() 自然顺序法比较字符串长度,不区分大小写!注意:遇到第一个不同的字符,则停止比较,如果前几个字符都相同,只是字符数量不同,数量多的字符为大!
echo strnatcasecmp(‘wang0000’,‘wang’); // 1
echo strnatcasecmp(‘Wangbao’,‘wangbao’);// 0
echo strnatcasecmp(‘1angbao’,‘wangbao’);// -1
/*~~~~~~~~~~字符串切割与拼~~~~~~~~~~~~*/
//chunk_split() 将字符串分成小块
echo chunk_split(‘wangdebao’,3,‘ ‘);
//wan gde bao
echo chunk_split(‘wangdebao’,3,‘☆’);
//wan☆gde☆bao☆
//strtok() 切开字符串 注意:只有字符串内有空格的地方才能被切割,否则无法被切割,或者以字符串中存在的符号为切割标志对字符串进行切割!被分割后,只留下前面的一部分,后一部分消失!
echo strtok(‘wang de bao’,‘ ‘).‘<br>’;
//输出结果为:wang
echo strtok(‘wang de bao’,‘☆’).‘<br>’;
//输出结果为:wang de bao
echo strtok(‘wangdebao’,‘d’).‘<br>’;
//输出结果为:wang
//explode() 使用一个字符串为标志。分割另一个字符串 注意:一般使用空格作为分割符,也可以使用字符串作为分割符,但是分割过后,作为分隔符的字符串就会从对象字符串中消失!有三个参数,后面的数字为最大的数组元素数目!
$a=explode(‘ ‘,‘wang de bao ni hao’,4);//Array ( [0] => wang [1] => de [2] => bao [3] => ni hao )
//$a=explode(‘de’,’wangdebaonihao’,4);//Array ( [0] => wang [1] => baonihao )
print_r($a);
//输出结果为:Array ( [0] => wang [1] => de [2] => bao [3] => ni hao )
//implode() 同join,将数组值用预定义字符;连接成字符串
echo implode(”,$a).‘<br>’;//wangdebaoni hao
echo implode(‘ ‘,$a);//wang de bao ni hao
echo implode(‘☆’,$a).‘<br>’;
//wang☆de☆bao☆ni hao
//substr() 截取字符串 注意:第一个为截取对象,第二个参数为截取起始位置,第三个参数是返回的长度
echo substr(‘wangdebao’,3).‘<br>’;//gdebao
echo substr(‘wangdebao’,3,3).‘<br>’;//gde
/*~~~~~~~~~~~字符串查找和替换~~~~~~~~~*/
//str_replace() 字符串替换操作,区分大小写
echo str_replace(‘world’,‘john’,‘hello world’);
//hello john
echo str_replace(‘World’,‘john’,‘hello world’);
//hello world
//str_ireplace() 字符串替换操作,不区分大小写!
echo str_ireplace(‘World’,‘john’,‘hello world’);
//hello john
//substr_count() 统计一个字符串在另一个字符串中出现的次数! 10代表字符串中起始位置
echo substr_count(‘hello world,this world is nice’,‘world’).‘<br>’;// 2
echo substr_count(‘hello world,this world is nice’,‘world’,10).‘<br>’;// 1
//substr_replace() 替换字符串中某串为另一字符串
echo substr_replace(‘wangdebao’,‘bao’,1);
//wbao
echo substr_replace(‘wangdebao’,‘bao’,4);
//wangbao
//similar_text() 返回两字符串相同字符的数量
echo similar_text(‘wangdebao’,‘nihao’);// 3
//strrchr() 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串
echo strrchr(‘wangdebadeo’,‘de’); //deo
//strstr() 返回一个字符串在另一个字符串中开始位置到结束的字符串
echo strstr(‘wangdebaowangdebao’,‘wang’);
//wangdebaowangdebao
echo strstr(‘wangdebaowangdebao’,‘de’);
//debaowangdebao
//strchr() strstr()的别名,返回一个字符串在另一个字符串中首次出现的位置开始到末尾的字符串!
echo strchr(‘wangdebaodebao’,‘de’);
//debaodebao
//stristr() 返回一个字符串在另一个字符串中开始位置到结束时的字符串,不区分大小写
echo stristr(‘wangdebaodeab’,‘De’); //debao
//strtr() 转换字符串中的某些字符
echo strtr(‘wangdebao’,‘de’,‘ed’);//wangedbao
echo strtr(‘wangdebao’,‘de’,‘eeeee’);
//wangeebao
//strpos() 寻找字符串中某字符最先出现的位置,区分大小写
echo strpos(‘wangdebao’,‘de’);
// 4【从0计算 0 1 2 3 4】
echo strpos(‘wangdebao’,‘De’); //空
//stripos() 寻找字符串中某字符最先出现的位置,不区分大小写
echo stripos(‘wangdebao’,‘De’);
// 4【从0计算 0 1 2 3 4】
//strrpos() 寻找某字符串中某字符最后出现的位置,区分大小写
echo strrpos(‘wanagdebao’,‘a’);// 8
echo strrpos(‘wanagdebao’,‘A’);//空
//strripos() 寻找某字符串中某字符最后出现的位置,不区分大小写
echo strripos(‘wanagdebao’,‘A’);// 8
//strspn() 返回字符串中首次符合mask的子字符串长度;第3个参数代表开始的位置,第4个参数表示匹配的长度,如果第3个参数的值为2,表示从第二个位置的下一个开始计数,直到遇到与自己不相同的为止,停止计数,如果第4个参数的值为8,表示从计数的位置开始计算,往后查询8个,但是当第3个停止计数时,后面的就不再查询,停止计数!
echo strspn(‘wellororad’,‘world’,2,8);
//6【或者理解为从0计算 0 1 2 3 4】
//strcspn() 返回字符串中不符合mask的字符串的长度,与上面的规则相同,但是效果相反!
echo strcspn(‘aelloaorld’,‘world’,2,3); //0
/*~~~~~~~~~~~字符串统计~~~~~~~~~~~~~~~*/
//str_word_count() 统计字符串中含有的单词数 注意:空格计算
echo str_word_count(‘wang de bao ni hao ma’).‘<br>’; // 6
echo str_word_count(‘hello world’); // 2
echo str_word_count(‘wangdebao’);// 1
//strlen() 统计字符串长度
echo strlen(‘wangdebao’);// 9
//count_chars() 统计字符串中所有字母出现的次数 1 – 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数大于 0 的值
print_r(count_chars(‘wangdebao’,1));
//输出结果为:Array ( [97] => 2 [98] => 1 [100] => 1 [101] => 1 [103] => 1 [110] => 1 [111] => 1 [119] => 1 )
/*~~~~~~~~~~~~字符串编码~~~~~~~~~~~~~*/
//md5() 字符串md5编码
echo md5(”).‘<br>’;
//d41d8cd98f00b204e9800998ecf8427e
echo md5(‘1’).‘<br>’;
//c4ca4238a0b923820dcc509a6f75849b
echo md5(‘a’).‘<br>’;
//0cc175b9c0f1b6a831c399e269772661
数组函数
/*~~~~~~~~~~~~~数组创建~~~~~~~~~~~~~~~*/
//array() 生成一个数组
$a=array(‘cat’,‘dog’,‘pig’);
print_r($a);//Array ( [0] => cat [1] => dog [2] => pig )
//array_combine() 生成一个数组,用一个数组的值作为键名。另一个数组值作为值
$a1=array(‘c’,‘d’,‘p’);
$a2=array(‘cat’,‘dog’,‘pig’);
print_r(array_combine($a1,$a2));//Array ( [c] => cat [d] => dog [p] => pig )
//range() 创建并返回一个包含指定范围的元素的数组
$number=range(0,50,10);
print_r($number);//Array ( [0] => 0 [1] => 10 [2] => 20 [3] => 30 [4] => 40 [5] => 50 )
//compact() 创建一个由参数所带变量组成的数组
$firstname=‘peter’;
$lastname=‘griffin’;
$age=’38’;
$result=compact(‘firstname’,‘lastname’,‘age’);
print_r($result);//Array ( [firstname] => peter [lastname] => griffin [age] => 38 )
//array_fill() 用给定的填充(值生成)数组 3是键,5是填充的数量,‘dog’为填充内容
$a=array_fill(3,5,‘dog’);
print_r($a);//Array ( [3] => dog [4] => dog [5] => dog [6] => dog [7] => dog )
/*~~~~~~~~~~数组合并和拆分~~~~~~~~~~~~*/
//array_chunk() 把一个数组分割成新的数组块
$a=array(‘a’=>‘cat’,‘b’=>‘dog’,‘c’=>‘pig’);
print_r(array_chunk($a,2));//Array ( [0] => Array ( [0] => cat [1] => dog ) [1] => Array ( [0] => pig ) )
//array_merge() 把两个或多个数组合并为一个数组,如果两个数组内的元素相同的话,则重复的元素不再进行合并!
$a1=array(‘a’=>‘cat’,‘b’=>‘dog’);
//$a2=array(‘c’=>’pig’,’d’=>’cow’);
$a2=array(‘a’=>‘cat’,‘b’=>‘dog’);
print_r(array_merge($a1,$a2));//Array ( [a] => cat [b] => dog )
//array_slice() 在数组中根据条件取出一段值,并返回
$a=array(0=>‘cat’,1=>‘dog’,2=>‘pig’,3=>‘cow’);
$a1=array(4=>‘cat’,5=>‘dog’,6=>‘pig’,7=>‘cow’);
print_r(array_slice($a,1,2));
//Array ( [0] => dog [1] => pig )
print_r(array_slice($a1,4,2)).‘<br>’;
//Array ( )无效果,采用的是默认键,赋予的键不管用
/*~~~~~~~~~~~~~~数组比较~~~~~~~~~~~~~~*/
//array_diff() 返回两个数组的差集数组 注意:输出结果为第一个数组与 其他数组的差集数组,即在第一个数组中哪一个不同,输出哪一个!
$a1=array(‘a’=>‘cat’,‘b’=>‘dog’);
$a2=array(‘c’=>‘pig’,‘d’=>‘cow’);
$a3=array(‘c’=>‘pig’,‘b’=>‘dog’);
print_r(array_diff($a1,$a2));
//Array ( [a] => cat [b] => dog )
print_r(array_diff($a1,$a3));
//Array ( [a] => cat )
//array_intersect() 返回两个或多个数组的交集数组
$a1=array(‘a’=>‘cat’,‘b’=>‘dog’);
$a2=array(‘c’=>‘pig’,‘b’=>‘dog’);
print_r(array_intersect($a1,$a2));
//Array ( [b] => dog )
/*~~~~~~~~~~~数组查找替换~~~~~~~~~~~~*/
//array_search() 在数组中查找一个值,返回一个键,没有返回,返回假
$a1=array(‘a’=>‘cat’,‘b’=>‘dog’);
print_r(array_search(‘dog’,$a1));// b
//array_splice() 把数组中一部分删除,用其他值来代替
$a1=array(0=>“Dog”,1=>“Cat”,2=>“Horse”,3=>“Bird”);
$a2=array(0=>“Tiger”,1=>“Lion”);
print_r(array_splice($a1,0,2,$a2));
//Array ( [0] => Dog [1] => Cat )
print_r($a1);//Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
//array_sum() 返回数组中所有值的总和
$a=array(0=>“5”,1=>“15”,2=>“25”);
echo array_sum($a);// 45
//in_array() 在数组中搜索给定的值,区分大小写
$a=array(‘A’,‘b’,‘ABCG’);
if (in_array(“b”,$a)){
echo “Match found”;//Match found
}else{
echo “Match not found”;
}
//array_key_exists() 判断某个数组中是否存在指定的key
$a=array(“a”=>“Dog”,“b”=>“Cat”);
if (array_key_exists(“a”,$a)){
echo “Key exists!”;//Key exists!
}else{
echo “Key does not exist!”;
}
/*~~~~~~~~~~~~数组指针操作~~~~~~~~~~~~*/
//key() 返回数组内部指针当前指向元素的键名
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . key($people);// 0
//current() 返回数组中的当前元素(单元)
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . current($people);//Peter
//next() 把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . next($people);// Joe
//prev() 把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . next($people);// Joe
echo “The key from the current position is: ” . prev($people);// Peter
//end() 将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . end($people);//Cleveland
//reset() 把数组的内部指针指向第一个元素,并返回这个元素的值
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
echo “The key from the current position is: ” . end($people);//Cleveland
echo “The key from the current position is: ” . reset($people);//Peter
//list() 用数组中的元素为一组变量赋值
$my_array=array(“Dog”,“Cat”,“Horse”);
list($a, $b, $c) = $my_array;
echo $a.‘–‘.$b.‘–‘.$c; //Dog–Cat–Horse
//array_shift() 删除数组中的第一个元素,并返回被删除元素的值
$a=array(“a”=>“Dog”,“b”=>“Cat”,“c”=>“Horse”);
echo array_shift($a);//Dog
print_r ($a);
//Array ( [b] => Cat [c] => Horse )
//array_unshift() 在数组开头插入一个或多个元素
$a=array(“a”=>“Cat”,“b”=>“Dog”);
echo array_unshift($a,‘horse’);//3
print_r($a); //Array ( [0] => horse [a] => Cat [b] => Dog )
//array_push() 向数组最后压入一个或多个元素
$a=array(“Dog”,“Cat”);
echo array_push($a,“Horse”,“Bird”);//4
print_r($a);//Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )
//array_pop() 删除数组中最后一个元素
$a=array(“Dog”,“Cat”);
print_r(array_pop($a));//Cat
print_r($a);//dog
/*~~~~~~~~~~~数组键值操作~~~~~~~~~~~~~*/
//shuffle() 将数组打乱,不保留键名
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
shuffle($a);
print_r($a);
//Array ( [0] => Dog [1] => Cat [2] => pig )
//count() 计算数组中的单元数目或对象中的属性个数
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
print_r(count($a));// 3
//array_flip() 返回一个键值反转后的数组
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
print_r(array_flip($a));
//Array ( [Dog] => d [Cat] => c [pig] => p )
//array_keys() 返回数组所有的键,组成一个数组
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
print_r(array_keys($a));
//Array ( [0] => d [1] => c [2] => p )
//array_values() 返回数组中所有的值,组成一个新的数组
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
print_r(array_values($a));
//Array ( [0] => Dog [1] => Cat [2] => pig )
//array_reverse() 返回一个元素顺序相反的数组
$a=array(“d”=>“Dog”,“c”=>“Cat”,“p”=>“pig”);
print_r(array_reverse($a));
//Array ( [p] => pig [c] => Cat [d] => Dog )
//array_count_values() 统计数组中所有值出现的次数
$a=array(“Dog”,“Dog”,“Cat”,“pig”);
print_r(array_count_values($a));
//Array ( [Dog] => 2 [Cat] => 1 [pig] => 1 )
//array_rand() 从数组中随机抽取一个或多个元素,注意是键名,第二个参数为随机抽取的个数,最多只能抽取4个,多了就会发生报错!
$a=array(“Dog”,“Dog”,“Cat”,“pig”);
print_r(array_rand($a,2));
//Array ( [0] => 2 [1] => 3 )
//each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向下一个移动。
$people = array(“Peter”, “Joe”, “Glenn”, “Cleveland”);
print_r (each($people));//Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 )
print_r (each($people));//Array ( [1] => Joe [value] => Joe [0] => 1 [key] => 1 )
//array_unique() 删除重复值,返回剩余数组 不改变原数组的值
$a=array(“Dog”,“Dog”,“Cat”,“pig”);
print_r(array_unique($a));//Array ( [0] => Dog [2] => Cat [3] => pig )
print_r($a);//Array ( [0] => Dog [1] => Dog [2] => Cat [3] => pig )
/*~~~~~~~~~~~~~数组排序~~~~~~~~~~~~~~*/
//sort() 按升序对给定数组的值排序,不保留键名
$a=array(“one”=>“Dog”,“two”=>“Dog”,“three”=>“Cat”,“four”=>“pig”);
//print_r(sort($a));//结果为:1 ,以下结果类似
sort($a);
print_r($a);//Array ( [0] => Cat [1] => Dog [2] => Dog [3] => pig )
//rsort() 对数组逆向排序,不保留键名
$a=array(“one”=>“Dog”,“two”=>“Dog”,“three”=>“Cat”,“four”=>“pig”);
//print_r(rsort($a));//输出结果为:1
rsort($a);
print_r($a);//Array ( [0] => pig [1] => Dog [2] => Dog [3] => Cat )
//asort() 对数组排序,保持索引关系
$a=array(1=>“Dog”,2=>“Dog”,3=>“Cat”,4=>“pig”);
asort($a);
print_r($a);//Array ( [3] => Cat [2] => Dog [1] => Dog [4] => pig )
//arsort() 对数组逆向排序,保持索引关系
$a=array(1=>“Dog”,2=>“Dog”,3=>“Cat”,4=>“pig”);
arsort($a);
print_r($a);//Array ( [4] => pig [2] => Dog [1] => Dog [3] => Cat )
//ksort() 按键名对数组排序
$a=array(1=>“Dog”,2=>“Dog”,3=>“Cat”,4=>“pig”);
ksort($a);
print_r($a);//Array ( [1] => Dog [2] => Dog [3] => Cat [4] => pig )
//krsort() 将数组按照键逆向排序
$a=array(1=>“Dog”,2=>“Dog”,3=>“Cat”,4=>“pig”);
krsort($a);
print_r($a);//Array ( [4] => pig [3] => Cat [2] => Dog [1] => Dog )
//natsort() 按自然顺序法对数组中的元素排序
$a=array(1=>“Dog”,2=>“dog”,3=>“Cat”,4=>“pig”);
natsort($a);
print_r($a);//Array ( [3] => Cat [2] => Dog [1] => dog [4] => pig )
//natcasesort() 自然排序,不区分大小写 注意:字母相同,小写排在大写前面
$a=array(1=>“Dog”,2=>“dog”,3=>“Cat”,4=>“pig”);
natcasesort($a);
print_r($a);//Array ( [3] => Cat [2] => dog [1] => Dog [4] => pig )