当前位置:  编程技术>php
本页文章导读:
    ▪php数组操作实例之连接数组      array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为: array array_combine(array keys,array values)  注意,两个输入数组必须大小相同,不能为空。 例子: <?php //php.........
    ▪php自动输出select表单的函数      以下函数实现: 自动生成select的option项。 代码如下: <?php /** * 自动生成form中的select表单 * edit by www. */ function get_select_html($msg_list,$msg_val=""){ $arr_list=$msg_list; if(!is_array($ar.........
    ▪php数组编码转换的方法参考      在php编程中,对数组的操作,有时会遇上编码转换的相关问题。 因为一些特殊字符的显示效果的原因,于是把utf-8改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换。 一些表单.........

[1]php数组操作实例之连接数组
    来源: 互联网  发布时间: 2013-12-24

array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
array array_combine(array keys,array values) 

注意,两个输入数组必须大小相同,不能为空。

例子:

<?php
 //php数组连接
//by www.
$name = array("apple", "banana", "orange");  
$color = array("red", "yellow", "orange");  
$fruit = array_combine($name, $color);  
print_r($fruit);  
  
// output  
// Array ( [apple] => red [banana] => yellow [orange] => orange )  
?>

    
[2]php自动输出select表单的函数
    来源: 互联网  发布时间: 2013-12-24

以下函数实现:
自动生成select的option项。

代码如下:

<?php
/**
* 自动生成form中的select表单
* edit by www.
*/
function get_select_html($msg_list,$msg_val=""){
        $arr_list=$msg_list;
        if(!is_array($arr_list)) return "";
        $str_return="";
        if(is_assoc($arr_list)){
            foreach($arr_list as $key=>$item){
                $str_sel="";
                if($key==$msg_val) $str_sel=" selected";
                $str_return.="<option value="".$key."" ".$str_sel."="">".$item."</option>";
            }
        }else{
            foreach($arr_list as $item){
                $str_sel="";
                if($item==$msg_val) $str_sel=" selected";
                $str_return.="<option value="".$item."" ".$str_sel."="">".$item."</option>";
            }
        }
        return $str_return;
    }
?>

代码说明:
返回一个select的option项目,$msg_list是一个array($key=>$value),$msg_val是需要默认选中的值。
可以把函数写成一个php静态类中的静态方法,用起来更方便。


    
[3]php数组编码转换的方法参考
    来源: 互联网  发布时间: 2013-12-24

在php编程中,对数组的操作,有时会遇上编码转换的相关问题。

因为一些特殊字符的显示效果的原因,于是把utf-8改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换。

一些表单验证需要返回json数据,php的json_encode函数只支持utf-8编码,无奈只得iconv了,需要达到的效果是GBK数组转换成utf-8数组传给json_encode函数。

最初是这样操作的,将数组序列化后用iconv函数转换编码,之后再反序列化:

unserialize(iconv('gbk','utf-8',serialize($array)));   

得到的结果是空白,后来想起来配置文件里设置了默认编码 ini_set('default_charset', 'gbk');
这样用gbk反序列化utf-8的字符串肯定不好用了,此处在序列化和反序列化之间加个ini_set('default_charset', 'utf-8'); 应该也是可以的。
不过由于是全局的编码设置,很容易导致其他地方的编码问题,比如数据库操作。

用构建数组原型的序列化方法,借助var_export函数,最终函数如下:

<?php
function array_iconv($in_charset,$out_charset,$arr){    
    return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));    
}  ?>  

原理分析:
var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。

总结:
网上的方法,大多都是利用递归调用iconv的方式,如果数组元素过多或者维数多一些,性能不行。
因此,最好的方式,个人感觉还是用原生代码,不需要考虑是N维数组还是关联数组,一切自动完成,保证数组转换前后数据一致。

关于php数组中编码转换的这个问题,就介绍到这里了,希望对大家有所帮助。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
c/c++ iis7站长之家
▪判断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