当前位置: 编程技术>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);
?>最新技术文章: