当前位置: 编程技术>php
本页文章导读:
▪php匹配电话号码的正则表达式(支持区位、直播号码、分机号码) 电话号码区配的正则表达式实例:
<?php
/**
* 匹配电话号码的正则实例
* edit www.
*/
$preg = '/(^0?1[2,3,5,6,8,9]\d{9}$)|(^(\d{3,4})-(\d{7,8})$)|(^(\d{7,8})$)|(^(\d{3,4})-(\d{7,8})-(\d{1,4})$)|(^(\d{7,8})-(\d{1,4})$)/'; .........
▪php中array_merge与array+array的区别 说明:
在php中,array_merge丢弃原来的数字的key,而保留字符串形式的key,然后组成一个新的数组,不管键名是否一样,都不合并,除非键名和value同时一样,且是字符串形式的key才合并。
但ar.........
▪php对象转换成数组的实例(兼容多维数组) 例子:
<?php
/**
* @author gayayang
* @date 2013/6/23
* @todo 将对象转换成数组
* @param unknown_type $obj
* @return unknown
* @edit www.
*/
function object_to_array($obj){
$_arr = is_object($obj) ? get_object_var.........
[1]php匹配电话号码的正则表达式(支持区位、直播号码、分机号码)
来源: 互联网 发布时间: 2013-12-24
电话号码区配的正则表达式实例:
<?php /** * 匹配电话号码的正则实例 * edit www. */ $preg = '/(^0?1[2,3,5,6,8,9]\d{9}$)|(^(\d{3,4})-(\d{7,8})$)|(^(\d{7,8})$)|(^(\d{3,4})-(\d{7,8})-(\d{1,4})$)|(^(\d{7,8})-(\d{1,4})$)/'; $b = '13345678901'; $b = '013215245245'; $b = '1234-12345678-1234'; if(preg_match($preg, $b)){ echo "匹配到了"; }else{ echo "没有匹配到"; } ?>
[2,3,5,6,8,9]
只提供了这几种类型的手机号:12...,13...,15...,16...,18...,19...。
不足的添加,多余的删除即可。
完美支持各种手机号(支持含有0的手机号如:013545454875),电话座机号码。
[2]php中array_merge与array+array的区别
来源: 互联网 发布时间: 2013-12-24
说明:
在php中,array_merge丢弃原来的数字的key,而保留字符串形式的key,然后组成一个新的数组,不管键名是否一样,都不合并,除非键名和value同时一样,且是字符串形式的key才合并。
但array+array就不同了,它只会先把前面的数组的数据先放到新生成的数组中,之后再看第二个array是否比第一个数组个数多,多的就添加进来,它只数个数,但是这种情况它会添加进来。
这就是二者的区别。
来看下面的例子:
<?php /** * array_merge、array+array的区别 * edit www. */ $a = array('d'=>'aass','e'=>'adsdfd','asd'=>'asdsdd','ddfg'=>'dssdf'); $b = array('d'=>'adddd','adsdfd','asdfsddddd','d'=>'aass'); $d = $a + $b; $e = array_merge($a,$b); var_dump($d); var_dump($e); ?>
输出结果:
array
'd' => string 'aass' (length=4)
'e' => string 'adsdfd' (length=6)
'asd' => string 'asdsdd' (length=6)
'ddfg' => string 'dssdf' (length=5)
0 => string 'adsdfd' (length=6)
1 => string 'asdfsddddd' (length=10)
array
'd' => string 'aass' (length=4)
'e' => string 'adsdfd' (length=6)
'asd' => string 'asdsdd' (length=6)
'ddfg' => string 'dssdf' (length=5)
0 => string 'adsdfd' (length=6)
1 => string 'asdfsddddd' (length=10)
'd' => string 'aass' (length=4)
'e' => string 'adsdfd' (length=6)
'asd' => string 'asdsdd' (length=6)
'ddfg' => string 'dssdf' (length=5)
0 => string 'adsdfd' (length=6)
1 => string 'asdfsddddd' (length=10)
array
'd' => string 'aass' (length=4)
'e' => string 'adsdfd' (length=6)
'asd' => string 'asdsdd' (length=6)
'ddfg' => string 'dssdf' (length=5)
0 => string 'adsdfd' (length=6)
1 => string 'asdfsddddd' (length=10)
[3]php对象转换成数组的实例(兼容多维数组)
来源: 互联网 发布时间: 2013-12-24
例子:
<?php /** * @author gayayang * @date 2013/6/23 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unknown * @edit www. */ function object_to_array($obj){ $_arr = is_object($obj) ? get_object_vars($obj) :$obj; foreach ($_arr as $key=>$val){ $val = (is_array($val) || is_object($val)) ? $this->object_to_array($val):$val; $arr[$key] = $val; } return $arr; } ?>
php简单对象与数组的转换函数:
<?php /** * 简单对象与数组的转换 * edit www. */ function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]=(object)arrayToObject($v); } return (object)$e; } function objectToArray($e){ $e=(array)$e; foreach($e as $k=>$v){ if( gettype($v)=='resource' ) return; if( gettype($v)=='object' || gettype($v)=='array' ) $e[$k]=(array)objectToArray($v); } return $e; } ?>
php多层数组和对象的转换:
多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化。
简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。
通过json_decode()(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得考虑。
实例代码如下:
<?php /** * 多层数组和对象的转换 * edit www. */ function objectToArray($d) { if (is_object($d)) { // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); } else { // Return array return $d; } } function arrayToObject($d) { if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return (object) array_map(__FUNCTION__, $d); } else { // Return object return $d; } } // Useage: // Create new stdClass Object $init = new stdClass; // Add some test data $init->foo = "Test data"; $init->bar = new stdClass; $init->bar->baaz = "Testing"; $init->bar->fooz = new stdClass; $init->bar->fooz->baz = "Testing again"; $init->foox = "Just test"; // Convert array to object and then object back to array $array = objectToArray($init); $object = arrayToObject($array); // Print objects and array print_r($init); echo "\n"; print_r($array); echo "\n"; print_r($object); ?>
最新技术文章: