PHP常用函数知识点

1.字符串函数

a.string<->array

implode() 返回一个由数组元素组合成的字符串。
explode() 把字符串打散为数组。
join() implode() 的别名。

b.查询与替换

substr(string $string, int $offset, ?int $length = null): string 返回字符串 string 由 offset 和 length 参数指定的子字符串。 【查询,分割截取】
strstr(string $haystack, mixed $needle, bool $before_needle = false): string 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
strpos(string $haystack, mixed $needle, int $offset = 0): int 返回 needle 在 haystack 中首次出现的数字位置。strpos('abc', 'a'); 是否存在返回索引【查询某字符串是否存在某字符串,速度最优】
str_replace(mixed $search,mixed $replace,mixed $subject,int &$count = ?): mixed 子字符串替换 $bodytag = str_replace("%body%", "black", ""); 【违禁词替换】

c.删除指定字符

strlen(string $string): int 获取字符串长度 $str = 'abcdef'; echo strlen($str); 中文字符串的处理使用 mb_strlen() 函数。
trim(string $str, string $character_mask = " \t\n\r\0\x0B"): string 去除字符串首尾处的空白字符(或者其他字符) ltrim() 移除字符串左侧 rtrim() 移除字符串右侧
strip_tags(string $str, string $allowable_tags = ?): string 从字符串中去除 HTML 和 PHP 标记 $text = '

Test paragraph.

Other text'; echo strip_tags($text);

d.url相关

$_SERVER['QUERY_STRING'] 查询urlget请求的查询字符串
querystring<->array
parse_str(string $string, array &$result): void 将字符串解析成多个变量 $str = "first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str, $output); 【$_GET】
对应的反函数:http_build_query(mixed $query_data,string $numeric_prefix = ?,string $arg_separator = ?,int $enc_type = PHP_QUERY_RFC1738): string 生成 URL-encode 之后的请求字符串 $data = array('foo'=>'bar','baz'=>'boom','cow'=>'milk','php'=>'hypertext processor'); echo http_build_query($data) . "\n";
parse_url(string $url, int $component = -1): mixed 解析 URL,返回其组成部分 $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); 【parse_url($url)['query'] === $_SERVER['QUERY_STRING']】

2.数组函数

a.与值相关

array_values(array $array): array 返回数组中所有的值 $array = array("size" => "XL", "color" => "gold"); print_r(array_values($array)); 【重置键名】
in_array(mixed $needle, array $haystack, bool $strict = false): bool 检查数组中是否存在某个值 $os = array("Mac", "NT", "Irix", "Linux"); in_array("Irix", $os)
array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false 在数组中搜索给定的值,如果成功则返回首个相应的键名 $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2;
array_unique(array $array, int $flags = SORT_STRING): array 移除数组中重复的值 array_unique($arr);【去重】

b.统计

array_sum(array $array): int|float 对数组中所有值求和 array_sum($arr);
array_product(array $array): int|float 计算数组中所有值的乘积 array_product($arr)
array_reduce(array $array, callable $callback, mixed $initial = null): mixed 用回调函数迭代地将数组简化为单一的值

<?php 
//第一种:
function myfunction($v1,$v2)
{
return $v1+$v2;
}
$a=array(10,15,20);
print_r(array_reduce($a,"myfunction",5));

//第二种:
$sum = function(…$args){
  return array_reduce($args,function ($acc,$cur){
    return $acc + $cur;
  },0);
};
echo $sum(2,3,4,5,6);
?>

c.栈与队

栈操作:
仅对尾部进行增:array_push($arr,10,20)
仅对尾部进行删:array_pop($arr)
仅对头部进行增:array_unshift($arr,10,20)
仅对头部进行删:array_shift($arr)
队操作:尾部添加,头部删除

d.排序


升序:sort($arr) 【保持键与值不变:用asort($arr)】
降序:rsort($arr)【保持键与值不变:用arsort($arr)】

升序:ksort($arr)
降序:krsort($arr)
打乱:
shuffle(array &$array): bool 打乱数组 无返回值 $numbers = range(1, 20); shuffle($numbers); print_r($numbers)

e.查询与替换

array_splice(array &$array,int $offset,?int $length = null,mixed $replacement = []): array 去掉数组中的某一部分并用其它值取代 $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, 2,[1,2]);【增删改】

f.数组回调函数 回头再调用,外部调用

过滤器:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array 使用回调函数过滤数组的元素 array_filter($arr,function($item){ if($item){return is_scalar($item);}}); 【仅返回数组中可转为true的元素集合 is_scalar检测是否为标量】
map:实现拉平:
array_map(?callable $callback, array $array, array ...$arrays): array 为数组的每个元素应用回调函数

array_map(function ($item){
  swith(gettype($item){
    case 'array': 
      $item = join(',',$item);
    break;
    ……
  }
  return $item;
},$arr);

归并:array_reduce
自定义:array_walk:
array_walk(array|object &$array, callable $callback, mixed $arg = null): bool 使用用户自定义函数对数组中的每个元素做回调处理

$user = ['id' => 10, 'name' => 'admin', 'email' => 'admin@php.cn'];
array_walk($user, function ($value, $key, $color) {
    printf('[%s]=><span style="color:%s">%s</span>', $key, $color, $value);
}, 'blue');

extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): int 从数组中将变量导入到当前的符号表 $var_array = array("color" => "blue","size" => "medium","shape" => "sphere");extract($var_array, EXTR_PREFIX_SAME, "wddx");echo "$color, $size, $shape, $wddx_size\n";

array_keys() 返回数组中所有的键名。
array_values() 返回数组中所有的值。
array_diff() 比较数组,返回两个数组的差集(只比较键值)。
array_intersect() 比较数组,返回两个数组的交集(只比较键值)。
array_merge() 把一个或多个数组合并为一个数组,将多个相同键名的值只取最后一个。

3.Math函数

rand() 生成随机整数

posted @ 2022-04-12 00:27  学无止境_Aiden  阅读(43)  评论(0编辑  收藏  举报