php取整函数、字符串运算函数、数组函数、时间函数
一、取整函数
1.floor(); 向下取整,返回值为float类型;
1 echo float(8.56); 2 //print 8
2.ceil(); 向上取整,返回值为float类型;
1 echo ceil(-3.2);2 //print -3
3.round(); 对浮点数进行四舍五入,返回值为float类型
1 echo round(3.141592653); 2 //print 3.14159265 3 echo round(3.141592653, 2); 4 //print 3.14
4.intval();返回变量的整数值
1 echo intval('899.3'); 2 //print 899 3 echo (array('3')); 4 print 1
二、字符串函数
1.strlen();返回给定字符串的长度
attention:一个中文返回三个字符;
2.mb_strlen($string, $encoding);获取字符串的长度
1 #显示中文汉字的个数 2 print_r(mb_strlen('陈健', 'gb2312')); 3 // this will print 2
3.mb_internal_encoding();显示当前的内部编码;
4.strpos($str1, $str2, $offset);返回str2第一次在str1中出现的位置
attention:字符串位置是从0开始,而不是从1开始;
1 // 判断str1是否在str2中 2 if (strpos($str2, $str1) !== false) { 3 echo "this is a big family"; 4 } 5 6 echo strpos('abcdefg', 'b'); 7 // this will print 1;
5.mb_strpos($str1, $str2, $offset, $encodeing)与strpos()最大的区别在于mb_strpos能处理中文;
6.strrpos($str1, $str2, $offset);返回字符串str2最后一次出现在str1中的位置;
1 echo strrpos('abcdefgnba', 'b'); 2 // this will print 8
7.strtolower($str);将字符串转化为小写
8.strtoupper($str);将字符串转化为大写
三、数组函数
1.array_change_key_case($arr, $case);返回字符串键名全为小写和大写的数组,$case为CASE_UPPER时返回大写, CASE_LOWER。
1 $arr = array( 2 'First' => 1, 3 'SecOnd' => 4 4 ) 5 6 print_r(array_change_key_case($arr, CASE_UPPER)); 7 8 // this will print array('FIRST'=>1, 'SECOND'=>4);
2.array_combine($key, $value);数组$key和数组$value的值得个数应该相同
3.array_count_values($input);统一数组中所有的值出现的个数,对于搜索一篇英文文章的单词出现频率很重要
4.array_diff($arr1, $arr2);返回一个数组,里面的值在$arr1中存在,但在arr2中不存在。
1 $arr1 = array('2','9','10'); 2 $arr2 = array('3', '6', '10'); 3 print_r(array_diff($arr1, $arr2)); 4 // this will print array([0]=>2, [1]=>9)
四、时间函数(最后写一个时间转化函数)
1.strtotime($time, $now);将任何英文文本的日期时间描述解析为 Unix 时间戳 ,$time参数参照日期与时间格式,$now(用来返回值的时间戳)如果为空的话默认当前时间;
1 <?php 2 echo strtotime ( "now" ), "\n" ; 3 echo strtotime ( "10 September 2000" ), "\n" ; 4 echo strtotime ( "+1 day" ), "\n" ; 5 echo strtotime ( "+1 week" ), "\n" ; 6 echo strtotime ( "+1 week 2 days 4 hours 2 seconds" ), "\n" ; 7 echo strtotime ( "next Thursday" ), "\n" ; 8 echo strtotime ( "last Monday" ), "\n" ; 9 ?> 10 /* 11 *this will print 12 *1412750036 13 *968515200 14 *1412836436 // 一天的时间戳为86400 15 *1413354836 16 *81413542038 17 *1412784000 18 *1412524800 19 */
2.time();返回当前时间的unix时间戳;
3.microtime();返回当前 Unix 时间戳和微秒数
<?php echo microtime(); // this will print 0.88073800 1412750601
4.date($format, [$timestamp]);格式化本地时间/日期
1 <?php 2 echo date('Y-m-d H:i:s')."\n"; 3 // this will print 2014-10-08 15:07:15
@时间转化函数
1 function timeToString ($timestamp) 2 { 3 $date = array(); 4 $now = array(); 5 $timeString = date('Y/n/j/G/i/s', $timestamp); 6 list($date['year'], $date['month'], $date['day'], $date['hour'], $date ['minute'], $date['second']) = explode('/', $timeString); 7 list($now['year'], $now['month'], $now['day'], $now['hour'], $now['minute'], $now['second']) = explode('/', date('Y/n/j/G/i/s')); 8 $date = array_map('intval', $date); 9 $now = array_map('intval', $now); 10 11 if ($date['year'] < $now['year']) { 12 return date('Y-m-d', $timestamp); 13 } 14 if ($date['month'] < $now['month'] || $date['day'] + 2 < $now['day']) { 15 return date('m-d', $timestamp); 16 } 17 if ($now['day'] - $date['day'] === 2) { 18 return date('前天H:i', $timestamp); 19 } 20 if ($now['day'] - $date['day'] === 1) { 21 return date('昨天H:i', $timestamp); 22 } 23 if ($date['hour'] < 12) { 24 return date('上午h:i', $timestamp); 25 } 26 return date('下午h:i', $timestamp); 27 }