当前位置:  编程技术>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)

    
[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); 
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3