我学PHP整理的数组与字符串常用函数

 

<?php
function dump($d){
 echo '<pre>';
 var_dump($d);
 echo '</pre>';
}
//数学函数
//数学计算
//abs():求绝对值
//pow():nci方
echo abs(-5.1);  //5.1
echo abs(-4.9);  //4.9
//ceil():进一取整
//floor():退一取整
echo ceil(4.1);  //5
echo floor(4.9); //4
//求最值
//max():求最大值
//min():求最小值
echo max(4,6,2,3); //6
echo min(4,6,2,3); //2
//进制转换函数
//decbin():十进二
//bindex():二进十
echo decbin(10); //1010
echo bindec(1010); //10
//其他数学函数
//mt_rand():高效取随机数
//pi():圆周率
echo mt_rand(4,20);
echo pi();  //3.14159265359

 

 

 


//数组函数

//1数组指针函数
//current():pos():返回数组当前指针的值
//key():返回数组当前指针的键
//prev():数组当前指针向上移动一位
//next():数组当前指针向下移动一位
//end():数组指针移到最后
//reset():数组指针移到第一位
$arr=array('临','兵','斗','者','绅');  //string(3) "临"
dump(current($arr));    //int(0)
dump(key($arr));

next($arr);
next($arr);
dump(current($arr));    //string(3) "斗"

prev($arr);
dump(current($arr));    //string(3) "兵"

end($arr);
dump(current($arr));    //string(3) "绅"

reset($arr);
dump(current($arr));    //string(3) "临"

//2数组键值操作
//array_values():返回数组中所有的值
//array_keys():返回数组中所有的键
//array_key_exists():判断数组中的某个键是否存在
//in_array():判断数组中的某个值是否存在
//array_search():搜索数组中的值是否存在,存在返回键名
//array_flip():键和值互换
//array_reverse():反转数组
dump(array_values($arr));
dump(array_keys($arr));

dump(array_flip($arr));
dump(array_reverse($arr));

dump(in_array('临',$arr));   //bool(true)
dump(array_search('临',$arr));   //int(0)
dump(array_key_exists('0',$arr));  //bool(true)

//3数组元素个数与唯一性
//array_count_values():计算数组中的值出现得个数
//count():计算数组中元素的个数
//array_unique():删除数组中重复的值
$arr[]='临';
dump(array_count_values($arr));
dump(count($arr));
dump(array_unique($arr));


//4数组的简单排序
//a.根据字母,数字升序排序
//sort():
//rsort():
$a=array('1'=>'a','20'=>'b','3'=>'A','4'=>'B','7'=>'1','5'=>'2','60'=>'3');
//sort($a);
//dump($a);

//rsort($a);
//dump($a);
//b.根据键名排序
//ksort():
//krsort():
dump($a);
ksort($a);
dump($a);

krsort($a);
dump($a);
//c.根据键值排序,并保持索引
//asort():
//arsort():
asort($a);
dump($a);

arsort($a);
dump($a);
//d.根据自然排序方法
//natsort():
//natcasesort();
natsort($a);
dump($a);

natcasesort($a);
dump($a);
//e,根据用户自定义排序
//uasort():
//uksort():
//usort():

//5堆栈数组函数
//array_push():在数组尾部插入一个或多个元素
//array_pop():在数组尾部弹出一个元素
//array_unshift():在数组头部插入一个或多个元素
//array_shift():在头部弹出一个元素
$first=array_pop($arr);
echo $first;   //临

$last=array_shift($arr);
echo $last;   //临

array_push($arr,'皆','列');
dump($arr);

array_unshift($arr,'临');
dump($arr);
//6.拆分,合并,分解,组合数组
//array_slice():在数组中取出一段值,并返回.如果数组键名中有字符串,保留索引关系
//array_splice():选择数组中的一系列元素,删除它们,还可以用其他值替换
//array_combine():合并2个数组,一为键,一为值
//array_merge():合并多个数组,重复的值会被最后一个覆盖
//array_intersect():取数组交集
//array_diff():取数组并集

dump(array_slice($arr,2,3,true));
dump(array_splice($arr,3));
//dump(array_splice($arr,3,2));
$arr1=array('你','懂','的','write');
$arr2=array('how','to','write','你');
dump(array_combine($arr1,$arr2));
dump(array_merge($arr1,$arr2));
dump(array_intersect($arr1,$arr2));
dump(array_diff($arr1,$arr2));

//7其他有用函数
//array_rand():随机取得数组的一个或多个键名
//array_sum():计算数组中值的和
//shuffle():打乱数组
//range():创建一个新数组

$arr=array('华'=>'春','月'=>'夏','实'=>'秋','阳'=>'冬');
dump($arr);
dump(array_rand($arr,2));

dump(array_sum($arr));

shuffle($arr);
dump($arr);

dump(range(4,16,3));
//8数组回调函数
//array_filter():用回调函数过滤数组中的元素
//array_walk():函数对数组中的每个元素应用回调函数处理,如果成功返回true
//array_map():可处理多个数组

 

 

 

 

 

 


//字符串函数
//1去除空格
//trim():去除空白字符,或者指定字符
//ltrim():
//rtrim():
$path='c://windows/user/';
$path=rtrim($path,'/');

 

//2字符串填充
//str_pad():把字符串填充为新的长度
$pad=str_pad('my name is zhaoke',20,'a');
dump($pad);
//3字符串大小写转换
//strtoupper():把字符串转换为大写
//strtolower():把字符串转换为小写
//ucfirst():把字符串首字符换为大写
//ucwords():把字符串每个首字母大写
$name='zhaoke is best';
$name1='zhaoke IS best';
echo strtoupper($name);
echo strtolower($name);

echo ucfirst($name);
echo ucwords($name);

//4和html相关联的函数
//addslashes():使用反斜线引用字符串
//stripslashes():还原转义字符
//addcslashes():使用反斜线引用c风格字符串
//stripcslashes():还原C语言风格转义字符串
define('MA',get_magic_quotes_gpc()?0:1);
if(MA){
 $username=addslashes($_GET['name']);
}

$username=stripslashes($username);

//nl2br():把\n替换为<br/>
//strip_tags():去除html,xml,php风格标记
//htmlspecialchars():把html标记的特殊字符串抓换为html实体
//htmlentities():将非ascII代码转换为对应的实体代码,//可以转义更多的html实体
echo nl2br("one line \n another line");

$str3='<font color="red">这是红色</font>';
echo $str3;
echo strip_tags($str3);


$str4="<b>我是做自己</b>";
dump(htmlspecialchars($str4));

 

//5其他字符串格式化函数
//strrev():反转字符串
//strlen():获取字符串长度
//number_format():通过千分位来格式化数字
//md5():md5加密
echo strrev($name);
echo strlen($name);
$number='234565665';
echo number_format($number);
echo md5($name);

//6字符串比较函数
//strcmp():比较字符串,前面大,返回1 一样大,返回0 后面大,返回-1
//strcasecmp():不区分大小写比较字符串
//strncmp():根据指定长度比较字符串
echo strcmp($name,$name1);
echo strcasecmp($name,$name1);
echo strncmp($name,$name1,7);
//strnatcmp():自然方式比较字符串
//strnatcasecmp():自然方式不区分大小写比较字符串
echo '<br/>';
$str1='a10A';
$str1='a2a';
echo strnatcmp($str1,$str2);
echo strnatcasecmp($str1,$str2);
//字符串模糊比较
//similar_text():比较字符串同个数
echo similar_text($name,$name1);
//7字符串的分割拼接,截取
//explode():根据指定字符分割字符串为数值
//implode():根据指定元素将数组拼接为字符串
//substr():从字符串中取出一段函数
$str='赵|科|有|恒|心|有|毅|力';
$b=explode('|',$str);
dump($b);

$s=implode('|',$b);  //string(31) "赵|科|有|恒|心|有|毅|力"
dump($s);

$s=substr($s,0,-3);  //string(28) "赵|科|有|恒|心|有|毅|"
dump($s);
//wordwrap():将字符串按字符个数换行


//8字符串的查找
//strstr():strchr():搜索一个字符在另一个字符串中第一次出现的位置,并返回字符串其余部分
//strrstr():反向搜索
//stristr():不区分大小写搜索
$string='有';
dump(strstr($str,$string)); //string(23) "有|恒|心|有|毅|力"
dump(strrchr($str,$string)); //string(7) "毅|力"

//strpos():返回一个字符串在另一个字符串中出现的位置,否则返回false
//strrpos():反向查找
//stripos():不区分大小写
//strripos():不区分大小写
dump(strpos($str,$string)); //int(8)
dump(strrpos($str,$string)); //int(20)

 

//9字符串的替换
//str_replace():
$text1='咖啡味道闻起来好奇怪,我很少喝咖啡';
$text2='咖啡';
$replace='茶';

$text=str_replace($text2,$replace,$text1);
dump($text);

ECHO __FILE__;
dump(str_replace('\\','/',substr(__FILE__,0)));


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值