php 乱整
php获取两个数组相同的元素(交集)以及比较两个数组中不同的元素(差集)
(一)php获取两个数组相同元素
array array_intersect(array $array1, array $array2, [, array $...
])
array array_intersect_assoc(array $array1, array $array2, [, array $...
])
这两个方法的功能基本一致,都是返回两个数组(也可以是多个数组)中都存在的元素,不同的是,前者只考虑数组中元素的 value 一致就认为两者相同,而后者需要 key 和 value 都一致才认为两者相同,例如:
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c'); $array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_intersect($array1,$array2)); 运行上面的代码会得到如下结果: array(4) { [0]=> string(1) "1" ["a"]=> string(6) "aaaaaa" ["b"]=> string(6) "bbbbbb" [1]=> string(1) "c" } 而使用方法 array_intersect_assoc()将会得到如下结果: array(1) { ["a"]=> string(6) "aaaaaa" }
(二)php比较两个数组中的不同元素
array array_diff(array $array1, array $array2, [, array $...
])
array array_diff_assoc(array $array1, array $array2, [, array $...
])
类似的,这两个方法的基本功能也是一致的,返回第一个数组中有,但是其它数组没有的元素。 前者只比较值,后者同时比较 key 和 value。
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c'); $array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_diff($array1,$array2)); 上面代码的运行结果为: array(0) { } 而如果把最后一行更换为 var_dump(array_diff_assoc($array1, $array2)); 将得到如下结果: array(3) { [0]=> string(1) "1" ["b"]=> string(6) "bbbbbb" [1]=> string(1) "c" }
统计数组中值的重复个数方法1:
$arr=array(
1,1,2,3,4,5,5,5,5,5,2,2,8
);
$b = array();
foreach ($arr as $v){
$b[$v]++;
}
print_r($b);die;
Array
(
[1] => 2
[2] => 3
[3] => 1
[4] => 1
[5] => 5
[8] => 1
)
方法2:$arr1 = array_count_values($arr);
PHP统计数值数组中出现频率最多的10个数字的方法
//随机生成数值数组 for($i=0;$i<1000;$i++){ $ary[]=rand(1,1000); } //统计数组中所有的值出现的次数 $ary=array_count_values($ary); arsort($ary);//倒序排序 $i=1; foreach($ary as $key=>$value){ if($i<=10){ printf("数字:%d 共出现 %d 次<br/>",$key,$value); }else{ break; } $i++; } unset($ary);
1
2
3
4
5
6
7
8
9
10
|
数字:255 共出现 6 次 数字:443 共出现 5 次 数字:906 共出现 5 次 数字:623 共出现 5 次 数字:586 共出现 4 次 数字:660 共出现 4 次 数字:873 共出现 4 次 数字:208 共出现 4 次 数字:247 共出现 4 次 数字:240 共出现 4 次 |
1 PHP常用函数总结 2 3 数学函数 4 5 1.abs(): 求绝对值 6 7 $abs = abs(-4.2); //4.2 数字绝对值数字 8 9 2.ceil(): 进一法取整 10 11 echo ceil(9.999); // 10 浮点数进一取整 12 13 3.floor(): 舍去法取整 14 15 echo floor(9.999); // 9 浮点数直接舍去小数部分 16 17 4.fmod(): 浮点数取余 18 19 ? 20 1 21 2 22 3 23 4 24 $x = 5.7; 25 $y = 1.3; // 两个浮点数,x>y 浮点余数 26 $r = fmod($x, $y); 27 // $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7 28 5.pow(): 返回数的n次方 29 30 echo pow(-1, 20); // 1 基础数|n次方乘方值 31 32 6.round(): 浮点数四舍五入 33 34 echo round(1.95583, 2); // 1.96, 一个数值|保留小数点后多少位,默认为0 舍入后的结果 35 36 7.sqrt(): 求平方根 37 38 echo sqrt(9); //3 被开方的数平方根 39 40 8.max(): 求最大值 41 42 echo max(1, 3, 5, 6, 7); // 7 43 44 多个数字或数组 返回其中的最大值 45 46 echo max(array(2, 4, 5)); // 5 47 48 9.min(): 求最小值 49 50 输入: 多个数字或数组 51 52 输出: 返回其中的最小值 53 54 10.mt_rand(): 更好的随机数 55 56 输入: 最小|最大, 输出: 随机数随机返回范围内的值 57 58 echo mt_rand(0,9);//n 59 11.rand(): 随机数 输入: 最小|最大, 输出: 随机数随机返回范围内的值 60 61 12.pi(): 获取圆周率值 62 63 去空格或或其他字符: 64 65 13.trim(): 删除字符串两端的空格或其他预定义字符 66 67 ? 68 1 69 2 70 $str = "\r\nHello World!\r\n"; 71 echo trim($str); 72 输入: 目标字符串 返回值: 清除后的字符串 73 74 14.rtrim(): 删除字符串右边的空格或其他预定义字符 75 76 ? 77 1 78 2 79 $str = "Hello World!\n\n"; 80 echo rtrim($str); 81 15.chop(): rtrim()的别名 82 83 16.ltrim(): 删除字符串左边的空格或其他预定义字符 84 85 86 87 ? 88 1 89 2 90 $str = "\r\nHello World!"; 91 echo ltrim($str); 92 17.dirname(): 返回路径中的目录部分 93 94 echo dirname("c:/testweb/home.php"); //c:/testweb 95 输入: 一个包含路径的字符串 返回值: 返回文件路径的目录部分 96 97 字符串生成与转化: 98 99 18.str_pad(): 把字符串填充为指定的长度 100 101 ? 102 1 103 2 104 $str = "Hello World"; 105 echo str_pad($str,20,"."); 106 输入: 要填充的字符串|新字符串的长度|供填充使用的字符串, 默认是空白 107 108 输出: 完成后的字符串 109 110 19.str_repeat(): 重复使用指定字符串 111 112 echo str_repeat(".",13); // 要重复的字符串|字符串将被重复的次数13个点 113 20.str_split(): 把字符串分割到数组中 114 115 print_r(str_split("Hello")); 116 输入: 要分割的字符串|每个数组元素的长度,默认1 117 118 输出: 拆分后的字符串数组 119 120 21.strrev(): 反转字符串 121 122 echo strrev("Hello World!"); // !dlroW olleH 123 输出: 目标字符串颠倒顺序后的字符串 124 125 22.wordwrap(): 按照指定长度对字符串进行折行处理 126 127 ? 128 1 129 2 130 3 131 $str = "An example on a long word is: 132 Supercalifragulistic"; 133 echo wordwrap($str,15); 134 输入: 目标字符串|最大宽数 135 136 输出: 折行后的新字符串 137 138 23.str_shuffle(): 随机地打乱字符串中所有字符 139 140 echo str_shuffle("Hello World"); 141 输入: 目标字符串顺序 输出: 打乱后的字符串 142 143 24.parse_str(): 将字符串解析成变量 144 145 ? 146 1 147 2 148 parse_str("id=23&name=John%20Adams", $myArray); 149 print_r($myArray); 150 输入: 要解析的字符串|存储变量的数组名称 151 152 输出: 返回Array( [id] => 23 [name] => John Adams) 153 154 25.number_format(): 通过千位分组来格式化数字 输入: 要格式化的数字|规定多少个小数|规定用作小数点的字符 串|规定用作千位分隔符的字符串 155 156 输出: 1,000,000 1,000,000.00 1.000.000,00 157 158 大小写转换: 159 160 26.strtolower(): 字符串转为小写 161 162 echo strtolower("Hello WORLD!"); 163 目标字符串 小写字符串 164 165 27.strtoupper(): 字符串转为大写 166 167 echo strtoupper("Hello WORLD!"); 168 输出: 大写字符串 169 170 28.ucfirst(): 字符串首字母大写 171 172 echo ucfirst("hello world"); // Hello world 173 29.ucwords(): 字符串每个单词首字符转为大写 174 175 echo ucwords("hello world"); // Hello World 176 html标签关联: 177 178 30.htmlentities(): 把字符转为HTML实体 179 180 ? 181 1 182 2 183 $str = "John & 'Adams'"; 184 echo htmlentities($str, ENT_COMPAT); // John & 'Adams' 185 31.htmlspecialchars(): 预定义字符转html编码 186 187 32.nl2br(): \n转义为<br>标签 188 189 echo nl2br("One line.\nAnother line."); 190 输出: 处理后的字符串 191 192 33.strip_tags(): 剥去 HTML、XML 以及 PHP 的标签 193 194 echo strip_tags("Hello <b>world!</b>"); 195 34.addcslashes():在指定的字符前添加反斜线转义字符串中字符 196 197 ? 198 1 199 2 200 3 201 $str = "Hello, my name is John Adams."; 202 echo $str; 203 echo addcslashes($str,'m'); 204 输入: 目标字符串|指定的特定字符或字符范围 205 206 35.stripcslashes(): 删除由addcslashes()添加的反斜线 207 208 echo stripcslashes("Hello, \my na\me is Kai Ji\m."); 209 // 目标字符串 Hello, my name is Kai Jim. 210 36.addslashes(): 指定预定义字符前添加反斜线 211 212 $str = "Who's John Adams?"; 213 echo addslashes($str); 214 输出: 把目标串中的' " \和null进行转义处理 215 216 37.stripslashes(): 删除由addslashes()添加的转义字符 217 218 echo stripslashes("Who\'s John Adams?"); // 清除转义符号Who's John Adams? 219 38.quotemeta(): 在字符串中某些预定义的字符前添加反斜线 220 221 ? 222 1 223 2 224 3 225 $str = "Hello world. (can you hear me?)"; 226 echo quotemeta($str); 227 // Hello world\. \(can you hear me\?\) 228 39.chr(): 从指定的 ASCII 值返回字符 229 230 echo chr(052); // ASCII 值返回对应的字符 231 40.ord(): 返回字符串第一个字符的ASCII值 232 233 echo ord("hello"); 字符串第一个字符的 ASCII 值 234 字符串比较: 235 236 41.strcasecmp(): 不区分大小写比较两字符串 237 238 echo strcasecmp("Hello world!","HELLO WORLD!"); 239 输入: 两个目标字符串 输出: 大1|等0|小 -1 240 241 42.strcmp(): 区分大小写比较两字符串 242 243 43.strncmp(): 比较字符串前n个字符,区分大小写 244 245 调用: int strncmp ( string $str1 , string $str2 , int $len) 246 247 44.strncasecmp(): 比较字符串前n个字符,不区分大小写 248 249 调用: int strncasecmp ( string $str1 , string $str2 , int $len ) 250 251 45.strnatcmp(): 自然顺序法比较字符串长度,区分大小写 252 253 调用: int strnatcmp ( string $str1 , string $str2 ) 254 255 输入: 目标字符串 256 257 46.strnatcasecmp(): 自然顺序法比较字符串长度, 不区分大小写 258 259 调用: int strnatcasecmp ( string $str1 , string $str2 ) 260 261 字符串切割与拼接: 262 263 47.chunk_split():将字符串分成小块 264 265 调用: str chunk_split(str $body[,int $len[,str $end]]) 266 267 输入: $body目标字串, $len长度, $str插入结束符 输出: 分割后的字符串 268 269 48.strtok(): 切开字符串 270 271 调用: str strtok(str $str,str $token) 272 273 目标字符串$str,以$token为标志切割返回切割后的字符串 274 275 49.explode(): 使用一个字符串为标志分割另一个字符串 276 277 调用: array explode(str $sep,str $str[,int $limit]) 278 279 输入: $sep为分割符,$str目标字符串,$limit返回数组最多包含元素数 输出: 字符串被分割后形成的数组 280 281 50.implode(): 同join,将数组值用预订字符连接成字符串 282 283 调用: string implode ( string $glue , array $pieces ) 284 285 $glue默认, 用''则直接相连 286 287 51.substr(): 截取字符串 288 289 调用: string substr ( string $string , int $start [, int $length ] ) 290 291 字符串查找替换: 292 293 52.str_replace(): 字符串替换操作,区分大小写 294 295 调用mix str_replace(mix $search,mix $replace, mix $subject[,int &$num]) 296 297 输入: $search查找的字符串,$replace替换的字符串,$subject被查找字串, &$num 输出: 返回替换后的结果 298 299 53.str_ireplace() 字符串替换操作,不区分大小写 300 301 调用: mix str_ireplace ( mix $search , mix $replace , mix $subject [, int &$count ] ) 302 303 输入: $search查找的字符串,$replace替换的字符串,$subject被查找字串,&$num 输出: 返回替换后的结果 304 305 54.substr_count(): 统计一个字符串,在另一个字符串中出现次数 306 307 调用: int substr_count ( string $haystack , string $needle[, int $offset = 0 [, int $length ]] ) 308 309 55.substr_replace(): 替换字符串中某串为另一个字符串 310 311 调用: mixed substr_replace ( mixed $string, string $replacement,int $start [, int $length ] ) 312 313 56.similar_text(): 返回两字符串相同字符的数量 314 315 调用: int similar_text(str $str1,str $str2) 316 输入: 两个比较的字符串 317 318 输出: 整形,相同字符数量 319 320 57.strrchr(): 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串 321 322 调用: string strrchr ( string $haystack , mixed $needle ) 323 324 58.strstr(): 返回一个字符串在另一个字符串中开始位置到结束的字符串 325 326 调用: string strstr ( string $str, string $needle , bool $before_needle ) 327 328 59.strchr(): strstr()的别名,返回一个字符串在另一个字符串中首次出现的位置开始到末尾的字符串 329 330 调用: string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 331 332 60.stristr(): 返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写 333 334 调用:string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 335 336 61.strtr(): 转换字符串中的某些字符 337 338 调用: string strtr ( string $str , string $from , string $to ) 339 340 62.strpos(): 寻找字符串中某字符最先出现的位置 341 342 调用: int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 343 344 63.stripos(): 寻找字符串中某字符最先出现的位置,不区分大小写 调用: int stripos ( string $haystack , string $needle [, int $offset ] ) 345 346 64.strrpos(): 寻找某字符串中某字符最后出现的位置 347 348 调用: int strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) 349 350 65.strripos(): 寻找某字符串中某字符最后出现的位置,不区分大小写 351 352 调用: int strripos ( string $haystack , string $needle [, int $offset ] ) 353 354 66.strspn(): 返回字符串中首次符合mask的子字符串长度 调用: int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) 355 356 67.strcspn(): 返回字符串中不符合mask的字符串的长度 357 358 调用: int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) 359 360 输入: $str1被查询,$str2查询字符串,$start开始查询的字符,$length是查询长度 输出: 返回从开始到第几个字符 361 362 字符串统计: 363 364 68.str_word_count(): 统计字符串含有的单词数 365 366 调用: mix str_word_count(str $str,[]) 367 368 输入: 目标字符串 输出: 统计处的数量 369 370 69.strlen(): 统计字符串长度int strlen(str $str) 371 372 输入: 目标字符串 输出:整型长度 373 374 70.count_chars(): 统计字符串中所有字母出现次数(0..255) 调用: mixed count_chars ( string $string [, int $mode ] ) 375 376 字符串编码: 377 378 71.md5(): 字符串md5编码 379 380 ? 381 1 382 2 383 $str = "Hello"; 384 echo md5($str); 385 数组函数 386 387 数组创建: 388 389 72.array(): 生成一个数组 390 391 ? 392 1 393 2 394 $a=array("Dog","Cat","Horse"); 395 print_r($a); 396 397 数组值或,键=>值一个数组型变量 398 399 73.array_combine(): 生成一个数组,用一个数组的值 作为键名,另一个数组值作为值 400 401 $a1=array("a","b","c","d"); 402 $a2=array("Cat","Dog","Horse","Cow"); 403 print_r(array_combine($a1,$a2)); 404 $a1为提供键,$a2提供值合成后的数组 405 406 74.range(): 创建并返回一个包含指定范围的元素的数组。 407 408 $number = range(0,50,10); 409 print_r ($number); 410 输入: 0是最小值,50是最大值,10是步长 输出: 合成后的数组 411 412 75.compact(): 创建一个由参数所带变量组成的数组 413 414 ? 415 1 416 2 417 3 418 4 419 5 420 6 421 $firstname = "Peter"; 422 $lastname = "Griffin"; 423 $age = "38"; 424 $result = compact("firstname", "lastname", 425 "age"); 426 print_r($result); 427 变量或数组 428 429 返回由变量名为键,变量值为值的数组,变量也可以为多维数组.会递归处理 76.array_fill(): 用给定的填充(值生成)数组 430 431 ? 432 1 433 2 434 $a=array_fill(2,3,"Dog"); 435 print_r($a); 436 2是键,3是填充的数量,'Dog'为填充内容返回完成的数组 437 438 数组合并和拆分: 439 440 77.array_chunk(): 把一个数组分割为新的数组块 441 442 ? 443 1 444 2 445 $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow"); 446 print_r(array_chunk($a,2)); 447 一个数组分割后的多维数组,规定每个新数组包含2个元素 448 449 78.array_merge(): 把两个或多个数组合并为一个数组。 450 451 ? 452 1 453 2 454 3 455 $a1=array("a"=>"Horse","b"=>"Dog"); 456 $a2=array("c"=>"Cow","b"=>"Cat"); 457 print_r(array_merge($a1,$a2)); 458 输入: 两个数组 输出: 返回完成后的数组 459 460 79.array_slice(): 在数组中根据条件取出一段值,并返回。 461 462 ? 463 1 464 2 465 $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); 466 print_r(array_slice($a,1,2)); 467 输入: 一个数组 输出: 1为从'Cat'开始,2为返回两个元素 468 469 数组比较: 470 471 80.array_diff(): 返回两个数组的差集数组 472 473 ? 474 1 475 2 476 3 477 $a1=array(0=>"Cat",1=>"Dog",2=>"Horse"); 478 $a2=array(3=>"Horse",4=>"Dog",5=>"Fish"); 479 print_r(array_diff($a1,$a2)); //返回'Cat' 480 输入: 两个或多个数组 输出: $a1与$a2的不同之处 481 482 81.array_intersect(): 返回两个或多个数组的交集数组 输出: 返回'Dog'和'Horse',$a1与$a2的相同之处 483 484 数组查找替换: 485 486 82.array_search(): 在数组中查找一个值,返回一个键,没有返回返回假 487 488 ? 489 1 490 2 491 $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); 492 echo array_search("Dog",$a); 493 输入: 一个数组 输出: 成功返回键名,失败返回false 494 495 83.array_splice(): 把数组中一部分删除用其他值替代 496 497 ? 498 1 499 2 500 3 501 4 502 $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); 503 $a2=array(0=>"Tiger",1=>"Lion"); 504 array_splice($a1,0,2,$a2); 505 print_r($a1); 506 输入: 一个或多个数组 输出: $a1被移除的部分由$a2补全 507 508 84.array_sum(): 返回数组中所有值的总和 509 510 ? 511 1 512 2 513 $a=array(0=>"5",1=>"15",2=>"25"); 514 echo array_sum($a); 515 输入: 一个数组 输出: 返回和 516 517 85.in_array(): 在数组中搜索给定的值,区分大小写 518 519 ? 520 1 521 2 522 3 523 4 524 5 525 6 526 7 527 $people = array("Peter", "Joe", "Glenn", "Cleveland"); 528 if (in_array("Glenn",$people) { 529 echo "Match found"; 530 } 531 else{ 532 echo "Match not found"; 533 } 534 输入: 需要搜索的值|数组 输出: true/false 535 536 86.array_key_exists(): 判断某个数组中是否存在指定的 key 537 538 输入: 需要搜索的键名|数组 539 540 数组指针操作: 541 542 87.key(): 返回数组内部指针当前指向元素的键名 543 544 88.current(): 返回数组中的当前元素(单元). 545 546 89.next(): 把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值 547 548 90.prev(): 把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值 549 550 91.end(): 将数组内部指针指向最后一个元素,并返回该元素的值(如果成功) 551 552 92.reset(): 把数组的内部指针指向第一个元素,并返回这个元素的值 553 554 93.list(): 用数组中的元素为一组变量赋值 555 556 ? 557 1 558 2 559 $my_array=array("Dog","Cat","Horse"); 560 list($a, $b, $c) = $my_array; 561 562 输入: $a, $b, $c为需要赋值的变量 输出: 变量分别匹配数组中的值 563 564 94.array_shift(): 删除数组中的第一个元素,并返回被删除元素的值 565 566 ? 567 1 568 2 569 3 570 $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); 571 echo array_shift($a); 572 print_r ($a); 573 95.array_unshift(): 在数组开头插入一个或多个元素 574 575 ? 576 1 577 2 578 3 579 $a=array("a"=>"Cat","b"=>"Dog"); 580 array_unshift($a,"Horse"); 581 print_r($a); 582 96.array_push(): 向数组最后压入一个或多个元素 583 584 ? 585 1 586 2 587 3 588 $a=array("Dog","Cat"); 589 array_push($a,"Horse","Bird"); 590 print_r($a); 591 输入: 目标数组|需要压入的值 返回值: 返回新的数组 592 593 97.array_pop(): 取得(删除)数组中的最后一个元素 594 595 ? 596 1 597 2 598 3 599 $a=array("Dog","Cat","Horse"); 600 array_pop($a); 601 print_r($a); 602 输入: $a为目标数组 输出: 返回数组剩余元素 603 604 数组键值操作: 605 606 98.shuffle(): 将数组打乱,保留键名 607 608 ? 609 1 610 2 611 3 612 $my_array = array("a" => "Dog", "b" => "Cat"); 613 shuffle($my_array); 614 print_r($my_array); 615 输入: 一个或多个数组 输出: 顺序打乱后的数组 616 617 99.count(): 计算数组中的单元数目或对象中的属性个数 618 619 ? 620 1 621 2 622 3 623 4 624 $people = array("Peter", "Joe", "Glenn", 625 "Cleveland"); 626 $result = count($people); 627 echo $result; 628 629 输入: 数组 输出: 输出元素个数 630 631 100.array_flip(): 返回一个键值反转后的数组 632 633 ? 634 1 635 2 636 $a=array(0=>"Dog",1=>"Cat",2=>"Horse"); 637 print_r(array_flip($a)); 638 639 输出: 返回完成后的数组 101.array_keys(): 返回数组所有的键,组成一个数组 640 641 ? 642 1 643 2 644 $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog"); 645 print_r(array_keys($a)); 646 输出: 返回由键名组成的数组 647 648 102.array_values(): 返回数组中所有值,组成一个数组 649 650 输出: 返回由键值组成的数组 651 652 103.array_reverse(): 返回一个元素顺序相反的数组 元素顺序相反的一个数组,键名和键值依然匹配 653 654 104.array_count_values(): 统计数组中所有的值出现的次数 655 656 ? 657 1 658 2 659 $a=array("Cat","Dog","Horse","Dog"); 660 print_r(array_count_values($a)); 661 输出: 返回数组原键值为新键名,次数为新键值 662 663 105.array_rand(): 从数组中随机抽取一个或多个元素,注意是键名!!! 664 665 ? 666 1 667 2 668 $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); 669 print_r(array_rand($a,1)); 670 $a为目标数组, 1为抽取第几个元素的键名返回第1个元素的键名b 671 672 106.each(): 返回数组中当前的键/值对并将数组指针向前移动一步 调用array each ( array &$array ) 673 674 在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()。 675 676 返回值: 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为0,1,key和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。 如果内部指针越过了数组的末端,则 each() 返回 FALSE。 677 678 107.array_unique(): 删除重复值,返回剩余数组 679 680 ? 681 1 682 2 683 $a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat"); 684 print_r(array_unique($a)); 685 输入: 数组 输入: 返回无重复值数组,键名不变 686 687 数组排序: 688 689 108.sort(): 按升序对给定数组的值排序,不保留键名 690 691 ? 692 1 693 2 694 3 695 4 696 $my_array = array("a" => "Dog", "b" => "Cat", 697 "c" => "Horse"); 698 sort($my_array); 699 print_r($my_array); 700 输出: true/false 109.rsort(): 对数组逆向排序,不保留键名 110.asort(): 对数组排序,保持索引关系 111.arsort(): 对数组逆向排序,保持索引关 112.ksort(): 系按键名对数组排序 113.krsort(): 将数组按照键逆向排序 114.natsort(): 用自然顺序算法对数组中的元素排序 115.natcasesort(): 自然排序,不区分大小写 701 702 文件系统函数 703 704 116.fopen(): 打开文件或者 URL 705 706 $handle = fopen("ftp://user:password@example.com/somefile.txt", "w"); 707 调用: resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] ) 708 709 返回值: 如果打开失败,本函数返回 FALSE 710 711 117.fclose(): 关闭一个已打开的文件指针 712 713 ? 714 1 715 2 716 3 717 $handle = fopen('somefile.txt', 'r'); 718 fclose($handle); 719 bool fclose(resource handle) 720 721 输出: 如果成功则返回 TRUE,失败则返回 FALSE 722 723 文件属性 724 725 118.file_exists(): 检查文件或目录是否存在 726 727 ? 728 1 729 2 730 3 731 4 732 5 733 6 734 $filename = '/path/to/foo.txt'; 735 if (file_exists($filename)) { 736 echo "exists"; 737 } else { 738 echo "does not exist"; 739 } 740 调用: bool file_exists ( string filename ) 输入: 指定的文件或目录 输出: 存在则返回 TRUE,否则返回 FALSE 741 742 119.filesize(): 取得文件大小 743 744 ? 745 1 746 2 747 $filename = 'somefile.txt'; 748 echo $filename . ': ' . filesize($filename) .'bytes'; 749 调用: int filesize ( string $filename ) 750 751 输出: 返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误 752 753 120.is_readable(): 判断给定文件是否可读 754 755 ? 756 1 757 2 758 3 759 4 760 5 761 6 762 $filename = 'test.txt'; 763 if (is_readable($filename)) { 764 echo '可读'; 765 } else { 766 echo '不可读'; 767 } 768 调用: bool is_readable ( string $filename ) 输出: 如果由 filename指定的文件或目录存在并且可读则返回 TRUE 769 770 121.is_writable(): 判断给定文件是否可写 771 772 ? 773 1 774 2 775 3 776 4 777 5 778 6 779 $filename = 'test.txt'; 780 if (is_writable($filename)) { 781 echo '可写'; 782 } else { 783 echo '不可写'; 784 } 785 调用: bool is_writable ( string $filename ) filename 参数 可以是一个允许进行是否可写检查的目录名 786 787 输出: 如果文件存在并且可写则返回 TRUE。 788 789 122.is_executable(): 判断给定文件是否可执行 790 791 ? 792 1 793 2 794 3 795 4 796 5 797 6 798 $file = 'setup.exe'; 799 if (is_executable($file)) { 800 echo '可执行'; 801 } else { 802 echo '不可执行'; 803 } 804 调用: bool is_executable ( string $filename ) 输出: 如果文件存在且可执行则返回 TRUE 805 806 123.filectime(): 获取文件的创建时间 807 808 809 810 ? 811 1 812 2 813 $filename = 'somefile.txt'; 814 echo filectime($filename); 815 调用: int filectime ( string $filename ) 输出: 时间以 Unix 时间戳的方式返回,如果出错则返回FALSE 816 817 124.filemtime(): 获取文件的修改时间 818 819 ? 820 1 821 2 822 $filename = 'somefile.txt'; 823 echo filemtime($filename); 824 int filemtime ( string $filename ) 825 输出: 返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix时间戳的方式返回 826 827 125.fileatime(): 获取文件的上次访问时间 828 829 ? 830 1 831 2 832 $filename = 'somefile.txt'; 833 echo fileatime($filename); 834 调用: int fileatime (string $filename) 835 836 输出: 返回文件上次被访问的时间, 如果出错则返回FALSE. 时间以Unix时间戳的方式返回. 837 838 126.stat(): 获取文件大部分属性值 839 840 ? 841 1 842 2 843 $filename = 'somefile.txt'; 844 var_dump(fileatime($filename)); 845 调用: array stat (string $filename 输出: 返回由 filename 指定的文件的统计信息 846 847 文件操作 848 849 127.fwrite(): 写入文件 850 851 ? 852 1 853 2 854 3 855 4 856 5 857 $filename = 'test.txt'; 858 $somecontent = "添加这些文字到文件\n"; 859 $handle = fopen($filename, 'a'); 860 fwrite($handle, $somecontent); 861 fclose($handle); 862 调用: int fwrite ( resource handle, string string [, int length] ) 863 864 输出: 把 string 的内容写入 文件指针 handle 处。如果指定了 length,当写入了length个字节或者写完了string以后,写入就会停止, 视乎先碰到哪种情况 865 866 128.fputs(): 同上 867 868 129.fread(): 读取文件 869 870 ? 871 1 872 2 873 3 874 4 875 $filename = "/usr/local/something.txt"; 876 $handle = fopen($filename, "r"); 877 $contents = fread($handle, filesize($filename)); 878 fclose($handle); 879 调用: string fread ( int handle, int length ) 从文件指针handle,读取最多 length 个字节 880 881 130.feof(): 检测文件指针是否到了文件结束的位置 882 883 ? 884 1 885 2 886 3 887 4 888 $file = @fopen("no_such_file", "r"); 889 while (!feof($file)) { 890 } 891 fclose($file); 892 调用: bool feof ( resource handle ) 输出: 如果文件指针到了 EOF 或者出错时则返回TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE 893 894 131.fgets(): 从文件指针中读取一行 895 896 ? 897 1 898 2 899 3 900 4 901 5 902 6 903 7 904 8 905 $handle = @fopen("/tmp/inputfile.txt", "r"); 906 if ($handle) { 907 while (!feof($handle)) { 908 $buffer = fgets($handle, 4096); 909 echo $buffer; 910 } 911 fclose($handle); 912 } 913 调用: string fgets ( int handle [, int length] ) 输出: 从handle指向的文件中读取一行并返回长度最多为length-1字节的字符串.碰到换行符(包括在返回值中)、EOF 或者已经读取了length -1字节后停止(看先碰到那一种情况). 如果没有指定 length,则默认为1K, 或者说 1024 字节. 914 915 132.fgetc(): 从文件指针中读取字符 916 917 ? 918 1 919 2 920 3 921 4 922 5 923 6 924 7 925 $fp = fopen('somefile.txt', 'r'); 926 if (!$fp) { 927 echo 'Could not open file somefile.txt'; 928 } 929 while (false !== ($char = fgetc($fp))) { 930 echo "$char\n"; 931 } 932 输入: string fgetc ( resource $handle ) 输出: 返回一个包含有一个字符的字符串,该字符从 handle指向的文件中得到. 碰到 EOF 则返回 FALSE. 933 934 133.file(): 把整个文件读入一个数组中 935 936 ? 937 1 938 2 939 3 940 4 941 5 942 6 943 7 944 8 945 9 946 10 947 $lines = file('http://www.example.com/'); 948 // 在数组中循环,显示 HTML 的源文件并加上行号。 949 950 foreach ($lines as $line_num => $line) { 951 echo "Line #<b>{$line_num}</b> : " . 952 htmlspecialchars($line) . "<br />\n"; 953 } 954 // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。 955 956 $html = implode('', file('http://www.example.com/')); 957 调用: array file ( string $filename [, int $use_include_path [, resource $context ]] ) 958 959 输出: 数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE 960 961 134.readfile(): 输出一个文件 调用: int readfile ( string $filename [, bool $use_include_path [, resource $context ]] ) 962 963 输出: 读入一个文件并写入到输出缓冲。返回从文件中读入的字节数。如果出错返回 FALSE 964 965 135.file_get_contents(): 将整个文件读入一个字符串 966 967 echo file_get_contents('http://www.baidu.com'); 968 调用: string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] ) 136.file_put_contents():将一个字符串写入文件 969 970 file_put_contents('1.txt','aa'); 971 调用: int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] ) 972 973 输出: 该函数将返回写入到文件内数据的字节数 974 975 137.ftell(): 返回文件指针读/写的位置 976 977 ? 978 1 979 2 980 3 981 4 982 5 983 $fp=fopen('tx.txt','r'); 984 fseek($fp,10); 985 echo ftell($fp); 986 fread($fp,4); 987 echo ftell($fp); 988 调用: int ftell ( resource $handle ) 输出: 返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量 989 990 138.fseek(): 在文件指针中定位 991 992 ? 993 1 994 2 995 3 996 4 997 5 998 $fp=fopen('tx.txt','r'); 999 fseek($fp,10); 1000 echo ftell($fp); 1001 fread($fp,4); 1002 echo ftell($fp); 1003 调用: int fseek ( resource $handle , int $offset [, int $whence ] ) 输出: 成功则返回 0;否则返回 -1 1004 1005 139.rewind(): 倒回文件指针的位置 1006 1007 ? 1008 1 1009 2 1010 3 1011 4 1012 5 1013 6 1014 $fp=fopen('tx.txt','r'); 1015 fseek($fp,3); 1016 echo ftell($fp); 1017 fread($fp,4); 1018 rewind($fp); 1019 echo ftell($fp); 1020 调用: bool rewind ( resource $handle ) 返回值: 如果成功则返回 TRUE,失败则返回 FALSE 1021 1022 140.flock(): 轻便的执行文件锁定 1023 1024 ? 1025 1 1026 2 1027 3 1028 4 1029 5 1030 6 1031 $fp=fopen('tx.txt','r'); 1032 flock($fp, LOCK_SH);//共享锁 1033 //flock($fp, LOCK_EX);//独立锁,写文件时用它打开 1034 //flock($fp, LOCK_NB);//附加锁 1035 flock($fp, LOCK_UN);//释放锁 1036 fclose($fp); 1037 调用: bool flock ( int $handle , int $operation [, int &$wouldblock ] ) 输出: 如果成功则返回 TRUE,失败则返回 FALSE 1038 1039 目录 1040 1041 141.basename(): 返回路径中的文件名部分 1042 1043 ? 1044 1 1045 2 1046 3 1047 path = "/home/httpd/html/index.php"; 1048 $file = basename($path); 1049 $file = basename($path,".php"); 1050 调用: string basename ( string $path [, string $suffix ]) 输出: 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结 束的,那这一部分也会被去掉 1051 1052 142.dirname(): 返回路径中的目录部分 1053 1054 ? 1055 1 1056 2 1057 $path = "/etc/passwd"; 1058 $file = dirname($path); 1059 调用: string dirname ( string $path ) 输出: 给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名 1060 1061 143.pathinfo(): 返回文件路径的信息 1062 1063 ? 1064 1 1065 2 1066 3 1067 echo '<pre>'; 1068 print_r(pathinfo("/www/htdocs/index.html")); 1069 echo '</pre>'; 1070 调用: mixed pathinfo ( string $path [, int $options ] ) 返回一个关联数组包含有 path 的信息 1071 1072 144.opendir(): 打开目录句柄 1073 1074 ? 1075 1 1076 2 1077 3 1078 $fp=opendir('E:/xampp/htdocs/php/study/19'); 1079 echo readdir($fp); 1080 closedir($fp); 1081 调用: resource opendir ( string $path [, resource $context ] ) 返回值: 如果成功则返回目录句柄的 resource,失败则返回FALSE 1082 1083 145.readdir(): 从目录句柄中读取条目 1084 1085 ? 1086 1 1087 2 1088 3 1089 $fp=opendir('E:/xampp/htdocs/php/study/19'); 1090 echo readdir($fp); 1091 closedir($fp); 1092 调用: string readdir ( resource $dir_handle ) 返回值: 返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回 1093 1094 146.closedir(): 关闭目录句柄 1095 1096 ? 1097 1 1098 2 1099 3 1100 $fp=opendir('E:/xampp/htdocs/php/study/19'); 1101 echo readdir($fp); 1102 closedir($fp); 1103 调用: void closedir ( resource $dir_handle ) 关闭由 dir_handle 指定的目录流。流必须之前被opendir() 所打开 147.rewinddir() : 倒回目录句柄 1104 1105 1106 1107 ? 1108 1 1109 2 1110 3 1111 4 1112 5 1113 6 1114 7 1115 $fp=opendir('E:/xampp/htdocs/php/study/19'); 1116 echo readdir($fp).'<br />'; 1117 echo readdir($fp).'<br />'; 1118 echo readdir($fp).'<br />'; 1119 rewinddir($fp); 1120 echo readdir($fp).'<br />'; 1121 closedir($fp); 1122 调用: void rewinddir ( resource $dir_handle ) 输出: 将 dir_handle 指定的目录流重置到目录的开头 148.mkdir(): 新建目录 1123 1124 mkdir('123'); 1125 调用: bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] ) 输出: 尝试新建一个由 pathname 指定的目录 1126 1127 149.rmdir(): 删除目录 1128 1129 rmdir('123'); 1130 调用: bool rmdir ( string $dirname ) 输出: 尝试删除 dirname 所指定的目录。目录必须是空的,而且要有相应的权限。如果成功则返回TRUE,失败则返回 FALSE 1131 1132 150.unlink(): 删除文件 1133 1134 ? 1135 1 1136 2 1137 unlink('123/1.txt'); 1138 rmdir('123'); 1139 调用: bool unlink ( string $filename ) 输出: 删除 filename 。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE 1140 1141 151.copy(): 拷贝文件 1142 1143 copy('index.php','index.php.bak'); 1144 调用: bool copy ( string $source , string $dest ) 输出: 将文件从 source 拷贝到 dest. 如果成功则返回TRUE,失败则返回 FALSE 1145 1146 152.rename(): 重命名一个文件或目录 1147 1148 rename('tx.txt','txt.txt'); 1149 调用: bool rename ( string $oldname , string $newname [, resource $context ] ) 输出: 如果成功则返回 TRUE,失败则返回 FALSE 1150 1151 文件的上传与下载 1152 1153 153.is_uploaded_file():判断文件是否是通过 HTTP POST上传的 1154 1155 ? 1156 1 1157 2 1158 3 1159 4 1160 5 1161 6 1162 7 1163 8 1164 9 1165 10 1166 if(is_uploaded_file($_FILES['bus']['tmp_name'])){ 1167 if( move_uploaded_file($_FILES['bus']['tmp_name'], 1168 $NewPath) ){ 1169 echo '上传成功<br /><img src="'.$NewPath.'">'; 1170 }else{ 1171 exit('失败'); 1172 } 1173 }else{ 1174 exit('不是上传文件'); 1175 } 1176 调用: bool is_uploaded_file ( string $filename ) 1177 1178 154.move_uploaded_file(): 将上传的文件移动到新位置 1179 1180 ? 1181 1 1182 2 1183 3 1184 4 1185 5 1186 6 1187 7 1188 8 1189 9 1190 10 1191 if(is_uploaded_file($_FILES['bus']['tmp_name'])){ 1192 if( move_uploaded_file($_FILES['bus']['tmp_name'], 1193 $NewPath) ){ 1194 echo '上传成功<br /><img src="'.$NewPath.'">'; 1195 }else{ 1196 exit('失败'); 1197 } 1198 }else{ 1199 exit('不是上传文件'); 1200 } 1201 调用: bool move_uploaded_file ( string $filename , string 1202 1203 时间函数 1204 1205 155.time(): 返回当前的 Unix 时间戳time(); 调用: int time ( void ) 输出: 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 1206 1207 156.mktime(): 取得一个日期的 Unix 时间戳 1208 1209 mktime(0, 0, 0, 4, 25, 2012); 1210 调用: int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] ) 156.date(): 格式化一个本地时间/日期 1211 1212 date('Y年m月d日 H:i:s'); 1213 调用: string date ( string $format [, int $timestamp ] ) 1214 1215 输出: 2016年09月10日 20:45:54 1216 1217 157.checkdate(): 验证一个格里高里日期 调用: bool checkdate ( int $month , int $day , int $year) 输出: 如果给出的日期有效则返回 TRUE,否则返回 FALSE 1218 1219 ? 1220 1 1221 2 1222 3 1223 4 1224 5 1225 if(checkdate(6,31,2012)){ 1226 echo '成立'; 1227 }else{ 1228 echo '不成立'; 1229 } 1230 158.date_default_timezone_set(): 设定用于一个脚本中所有日期时间函数的默认时区 1231 1232 date_default_timezone_set('PRC'); 1233 调用: bool date_default_timezone_set ( string $timezone_identifier) 1234 1235 返回值: 如果 timezone_identifier 参数无效则返回 FALSE,否则返回 TRUE。 1236 1237 159.getdate(): 取得日期/时间信息 调用: array getdate ([ int $timestamp ] ) 1238 1239 输出: 返回一个根据timestamp得出的包含有日期信息的关联数组。如果没有给出时间戳则认为是当前本地时间 1240 1241 ? 1242 1 1243 2 1244 $t=getdate(); 1245 var_dump($t); 1246 160.strtotime(): 将任何英文文本的日期时间描述解析为 Unix 时间戳 1247 1248 ? 1249 1 1250 2 1251 3 1252 4 1253 5 1254 6 1255 7 1256 8 1257 echo strtotime("now"); 1258 int strtotime ( string $time [, int $now ] ) 1259 echo strtotime("10 September 2000"); 1260 echo strtotime("+1 day"); 1261 echo strtotime("+1 week"); 1262 echo strtotime("+1 week 2 days 4 hours 2 seconds"); 1263 echo strtotime("next Thursday"); 1264 echo strtotime("last Monday"); 1265 161.microtime(): 返回当前 Unix 时间戳和微秒数 调用: mixed microtime ([ bool $get_as_float ] ) 1266 1267 ? 1268 1 1269 2 1270 3 1271 4 1272 $start=microtime(true); 1273 sleep(3); 1274 $stop=microtime(true); 1275 echo $stop-$start; 1276 其他常用: 1277 1278 162.intval(): 获取变量的整数值 调用: int intval ( mixed $var [, int $base = 10 ] ) 通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。 1279 1280 var: 要转换成 integer 的数量值 1281 1282 base: 转化所使用的进制 1283 1284 返回值: 成功时返回 var 的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。 1285 1286 PDO类的相关函数 prepare() execute() fetch() 1287 1288 ? 1289 1 1290 2 1291 3 1292 4 1293 5 1294 6 1295 7 1296 8 1297 9 1298 10 1299 11 1300 12 1301 13 1302 14 1303 15 1304 16 1305 17 1306 18 1307 19 1308 20 1309 21 1310 22 1311 23 1312 24 1313 25 1314 26 1315 27 1316 28 1317 29 1318 <?php 1319 $driver = 'mysql'; 1320 $database = "dbname=CODINGGROUND"; 1321 $dsn = "$driver:host=localhost;unix_socket=/home/cg/mysql/mysql.sock;$database"; 1322 1323 $username = 'root'; 1324 $password = 'root'; 1325 1326 try { 1327 $conn = new PDO($dsn, $username, $password); 1328 echo "<h2>Database CODINGGROUND Connected<h2>"; 1329 }catch(PDOException $e){ 1330 echo "<h1>" . $e->getMessage() . "</h1>"; 1331 } 1332 $sql = 'SELECT * FROM users'; 1333 $stmt = $conn->prepare($sql); 1334 $stmt->execute(); 1335 1336 echo "<table style='width:100%'>"; 1337 while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 1338 echo "<tr>"; 1339 foreach($row as $value) 1340 { 1341 echo sprintf("<td>%s</td>", $value); 1342 } 1343 echo "</tr>"; 1344 } 1345 echo "</table>"; 1346 ?>