日常常用优雅方法

  • 严格搜索数组中是否存在指定的值 (第三个参数: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 )

猜你喜欢

转载自www.cnblogs.com/echojson/p/12769835.html
今日推荐