无需言 做自己 业 ,精于勤 荒于嬉.
- 数组 函数 array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $c = array_combine($a, $b); print_r($c); ?>
- 数组 函数 array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php function key_compare_func($a, $b){ if ($a === $b) { return 0; } return ($a > $b)? 1:-1; } $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($array1, $array2, "key_compare_func"); print_r($result); ?>
- 数组 函数 array_count_values 统计数组中所有的值
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array = array(1, "hello", 1, "world", "hello"); print_r(array_count_values($array)); ?>
- 数组 函数 array_diff 计算数组的差集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array1 = array("a" => "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); $result = array_diff($array1, $array2); print_r($result); ?>示例2
<?php // 数组无法转换成字符串时会产生 Notice 警告$source = [1, 2, 3, 4]; $filter = [3, 4, [5], 6]; $result = array_diff($source, $filter); // 而这个就可以,因为对象可以转换成字符串class S { private $v; public function __construct(string $v) { $this->v = $v; } public function __toString() { return $this->v; } } $source = [new S('a'), new S('b'), new S('c')]; $filter = [new S('b'), new S('c'), new S('d')]; $result = array_diff($source, $filter); // $result 包含了一个 S('a'); 实例?>
- 数组 函数 array_fill_keys 使用指定的键和值填充数组
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $keys = array('foo', 5, 10, 'bar'); $a = array_fill_keys($keys, 'banana'); print_r($a); ?>
- 数组 函数 array_chunk 将一个数组分割成多个
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $input_array = array('a', 'b', 'c', 'd', 'e'); print_r(array_chunk($input_array, 2)); print_r(array_chunk($input_array, 2, true)); ?>
- 数组 函数 array_fill 用给定的值填充数组
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $a = array_fill(5, 6, 'banana'); $b = array_fill(-2, 4, 'pear'); print_r($a); print_r($b); ?>
- 数组 函数 array_diff_ukey 用回调函数对键名比较计算数组的差集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php function key_compare_func($key1, $key2){ if ($key1 == $key2) return 0; else if ($key1 > $key2) return 1; else return -1; } $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_ukey($array1, $array2, 'key_compare_func')); ?>
- 数组 函数 array_intersect_assoc 带索引检查计算数组的交集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "b" => "yellow", "blue", "red"); $result_array = array_intersect_assoc($array1, $array2); print_r($result_array); ?>
- 数组 函数 array_intersect_key 使用键名比较计算数组的交集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_intersect_key($array1, $array2)); ?>
- 数组 函数 array_flip 交换数组中的键和值
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $input = array("oranges", "apples", "pears"); $flipped = array_flip($input); print_r($flipped); ?>示例2
<?php $input = array("a" => 1, "b" => 1, "c" => 2); $flipped = array_flip($input); print_r($flipped); ?>
- 数组 函数 array_intersect 计算数组的交集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array1 = array("a" => "green", "red", "blue"); $array2 = array("b" => "green", "yellow", "red"); $result = array_intersect($array1, $array2); print_r($result); ?>
- 数组 函数 array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red"); print_r(array_intersect_uassoc($array1, $array2, "strcasecmp")); ?>
- 数组 函数 array_filter 使用回调函数过滤数组的元素
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php function odd($var){ // 返回输入整数是否为奇数(单数) return $var & 1; } function even($var){ // 返回输入整数是否为偶数 return !($var & 1); } $array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $array2 = [6, 7, 8, 9, 10, 11, 12]; echo "Odd :\n"; print_r(array_filter($array1, "odd")); echo "Even:\n"; print_r(array_filter($array2, "even")); ?>示例2
<?php $entry = [ 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '', 5 => '0', 6 => 0,]; print_r(array_filter($entry)); ?>
示例3
<?php $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]; var_dump(array_filter($arr, function($k) { return $k == 'b'; } , ARRAY_FILTER_USE_KEY)); var_dump(array_filter($arr, function($v, $k) { return $k == 'b' || $v == 4; } , ARRAY_FILTER_USE_BOTH)); ?>
- 数组 函数 array_intersect_ukey 在键名上使用回调函数来比较计算数组的交集
-
发表日期:2021-07-01 08:57:06 | 来源: | 分类:数组 函数
-
示例1
<?php function key_compare_func($key1, $key2){ if ($key1 == $key2) return 0; else if ($key1 > $key2) return 1; else return -1; } $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func')); ?>
- 数组 函数 array_column 返回数组中指定的一列
-
发表日期:2021-07-01 08:57:05 | 来源: | 分类:数组 函数
-
示例1
<?php // Array representing a possible record set returned from a database$records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', )); $first_names = array_column($records, 'first_name'); print_r($first_names); ?>
示例2
<?php // Using the $records array from Example #1$last_names = array_column($records, 'last_name', 'id'); print_r($last_names); ?>
示例3
<?php class User{ public $username; public function __construct(string $username) { $this->username = $username; } } $users = [ new User('user 1'), new User('user 2'), new User('user 3'),]; print_r(array_column($users, 'username')); ?>示例4
<?php class Person{ private $name; public function __construct(string $name) { $this->name = $name; } public function __get($prop) { return $this->$prop; } public function __isset($prop) : bool { return isset($this->$prop); } } $people = [ new Person('Fred'), new Person('Jane'), new Person('John'),]; print_r(array_column($people, 'name')); ?>
- 数组 函数 array_change_key_case 将数组中的所有键名修改为全大写或小写
-
发表日期:2021-07-01 08:57:05 | 来源: | 分类:数组 函数
-
示例1
<?php $input_array = array("FirSt" => 1, "SecOnd" => 4); print_r(array_change_key_case($input_array, CASE_UPPER)); ?>
- PCRE 正则语法 元字符
-
发表日期:2021-07-01 08:57:01 | 来源: | 分类:PCRE 正则语法
-
元字符
正则表达式的威力源于它可以在模式中拥有选择和重复的能力。 一些字符被赋予 特殊的涵义,使其不再单纯的代表自己,模式中的这种有特殊涵义的编码字符 称为 元字符。
共有两种不同的元字符:一种是可以在模式中方括号外任何地方使用的,另外一种 是需要在方括号内使用的。 在方括号外使用的元字符如下:
模式中方括号内的部分称为“字符类”。 在一个字符类中仅有以下可用元字符:方括号外的元字符 元字符 描述 \ 一般用于转义字符 ^ 断言目标的开始位置(或在多行模式下是行首) $ 断言目标的结束位置(或在多行模式下是行尾) . 匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ( 子组的开始标记 ) 子组的结束标记 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词) * 量词,0 次或多次匹配 + 量词,1 次或多次匹配 { 自定义量词开始标记 } 自定义量词结束标记
下面章节描述了每个元字符的用法。方括号内的元字符(字符类) 元字符 描述 \ 转义字符 ^ 仅在作为第一个字符(方括号内)时,表明字符类取反 - 标记字符范围
- PCRE 正则语法 分隔符
-
发表日期:2021-07-01 08:57:01 | 来源: | 分类:PCRE 正则语法
-
分隔符
当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。 分隔符可以是任意非字母数字、非反斜线、非空白字符。 静默忽略合法分隔符之前的空白字符。
经常使用的分隔符是正斜线(
/)、hash符号(#) 以及取反符号(~)。下面的例子都是使用合法分隔符的模式。/foo bar/ #^[^0-9]$# +php+ %[a-zA-Z0-9_-]%
It is also possible to use bracket style delimiters where the opening and closing brackets are the starting and ending delimiter, respectively.
(),{},[]and<>are all valid bracket style delimiter pairs.Bracket style delimiters do not need to be escaped when they are used as meta characters within the pattern, but as with other delimiters they must be escaped when they are used as literal characters.(this [is] a (pattern)) {this [is] a (pattern)} [this [is] a (pattern)] <this [is] a (pattern)>如果需要在正则模式内匹配分隔符,必须使用反斜线转义。如果分隔符经常在 正则模式内出现, 最好使用其他分隔符以便提高可读性。
需要将一个字符串放入模式中使用时,可以用 preg_quote() 函数对其进行 转义,它的第二个参数(可选)可以用于指定需要被转义的分隔符。/http:\/\// #http://#
可以在结束分隔符后面增加模式修饰符。 下面的例子是一个大小写不敏感的匹配:
#[a-z]#i
- PCRE 正则语法 锚
-
发表日期:2021-07-01 08:57:01 | 来源: | 分类:PCRE 正则语法
-
锚
在一个字符类外面,在默认匹配模式下, 脱字符(
^) 是一个断言当前匹配点位于目标字符串开始处的断言。 在一个字符类内部, 脱字符(^) 表明这个字符类中描述的字符取反(详见下文)。脱字符(
^)并不一定要是模式的第一个字符, 但是如果处于某个可选分支时, 它应该是该分支的首字符。如果所有选择分支都以脱字符(^)开头,这就是说, 如果模式限制为只匹配目标的开头, 它被称为是一个 ”紧固” 模式。(同样也有其他方式可以构造出紧固模式)美元符(
$)是用于断言当前匹配点位于目标字符串末尾, 或当目标字符串以换行符结尾时当前匹配点位于该换行符位置(默认情况)。 美元符($)不一定要作为模式的最后一个字符,但是如果它在某个可选分支中时, 就应该位于该分支的末尾。美元符在字符类中没有特殊的意义。$的意义可以通过在编译或匹配时设置 PCRE_DOLLAR_ENDONLY 改变为只匹配字符串末尾。 这不会影响 \Z 断言的行为。脱字符
^和美元符$字符的意义在 PCRE_MULTILINE 选项被设置时会发生变化。 当在这种情况下时, 它们匹配每一个换行符后面的和前面的字符,另外, 也会匹配目标字符串的开始和结束。比如, 模式 /^abc$/ 在多行模式下会成功匹配目标字符串 ”def\nabc”, 而正常情况下不会。因此,由于所有的可选分支都以 "^" 开始, 在单行模式下这成为紧固模式,然而在多行模式下,这是非紧固的。 PCRE_DOLLAR_ENDONLY 选项在 PCRE_MULTILINE 设置后失效。注意: \A、\Z、 \z 等转义序列可以在任何模式下用于匹配目标字符串的开始和结束位置。 并且如果模式的所有分支都以 \A 开始,它同样是紧固的, 而与 PCRE_MULTILINE 是否设置无关。
- 前端开发(1)
- 数据库(0)
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)
- JAVA(0)
- Android(0)
- Linux(0)
- AI大模型(9)
- 其他(0)
宁公网安备 64010402001209号