- 严格搜索数组中是否存在指定的值 (第三个参数:true,数据类型也要相同)
in_array($search, $arr, true);
- 获取数组的第一个元素的值
$first = current(explode('.', $field, 2));
这样写可以兼容到数字索引和关联索引都
- 正则分割后,去掉 “空值”部分
$orderBy = ' id asc , name desc ';
$columns = preg_split('/\s*,\s*/', trim($orderBy), -1, PREG_SPLIT_NO_EMPTY); // -1 表示不限制,分割完
print_r($columns);
输出结果:
Array
(
[0] => id asc
[1] => name desc
)
扩展:
有的人可能正则写法如下,也是正确的
$columns = preg_split('\\s*,\\s*/', trim($orderBy), -1, PREG_SPLIT_NO_EMPTY); // -1 表示不限制,分割完
说明:写成\s,表示度\与s相匹配,在第一次引用该段指令时就会生效,起到\s的作用。也就是表示空白符号。
而写成\s的时候,\会与第二知个\相匹配,形成\。其含义就是单独的一个\。这种情况,道有可能是为了输出\s,而不令其转义。更常见的原因是该段字符串会被处理两次回,第一次的时候将\s处理为\s,第二次处理的答时候,才执行\s的作用,即空白符号。
扩展:将一个字符串分隔为组成它的字符
$str = 'runoob';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
- 给指定的字符添加转义符号
/给指定的字符添加转义符号,一般和有正则的参数一起用,避免和正则的分界符混淆
preg_replace('/^' . preg_quote($rootField, '/') . '\./i', '', $field);
如果 $rootField 字符串有字符 ‘/’,那么 此时就会和正则分界符 /$pattern/ 有冲突了。避免出现冲突,将字符串中的 /先转义。
- 创建一个包含变量名和它们的值的数组 (把变量转成数组)
$firstname = "Peter";
$lastname = "Griffin";
$age = "41";
$result = compact("firstname", "lastname", "age");
print_r($result);
结果输出 Array ( [firstname] => Peter [lastname] => Griffin [age] => 41 )