php中字符串转换成数组函数explode(),implode()

行看看这两个函数

implode 函数:

使用函数 implode 将数组转换为字符串

explode 函数:

使用函数 explode 将字符串转换成数组

例1.

今天在php论坛中看到以为朋友发了一个帖子请教php如何把字符串转换成数组;作为php程序员的新一第一反应是联想到explode(),implode()这两个函数。新一也是用里面的函数进行转换成数组的。

con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4

&con[4]=30&selt[4]=2&con[5]=4&selt[5]=1&con[6]=11&con[7]=12

上面就是网友需要转换成PHP数组的字符串;下面也是新一提供PHP转换代码

 代码如下 复制代码

<?php
$str = 'con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4&con[4]=30&selt[4]=2&con[5]=4&selt[5]=1&con[6]=11&con[7]=12';
$arr = explode('&',$str);
$arr2 = array();
foreach($arr as $k=>$v){
        $arr = explode('=',$v);
        $arr2[$k] = $arr[1];
}
print_r($arr2);
?>
//输出
Array
(
    [0] => 28
    [1] => 1
    [2] => 29
    [3] => 4
    [4] => 26
    [5] => 4
    [6] => 30
    [7] => 2
    [8] => 4
    [9] => 1
    [10] => 11
    [11] => 12
)
//第二个
<?php
$str = 'con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4&con[4]=30&selt[4]=2&con[5]=4&selt[5]=1&con[6]=11&con[7]=12';
$arr = explode('&',$str);
$arr2 = array();
foreach($arr as $k=>$v){
        $arr = explode('=',$v);
        $arr2[$arr[0]] = $arr[1];
}
print_r($arr2);
?>
//输出
Array
(
    [con[1]] => 28
    [selt[1]] => 1
    [con[2]] => 29
    [selt[2]] => 4
    [con[3]] => 26
    [selt[3]] => 4
    [con[4]] => 30
    [selt[4]] => 2
    [con[5]] => 4
    [selt[5]] => 1
    [con[6]] => 11
    [con[7]] => 12
)

例2.
上面只支持一维数据,如果是二维或三维数据呢

 代码如下 复制代码

//将多维数组中所有的数值转换成字符串????》最多支持三维数组
function implodex( $glue, $array, $separator='' ) {
if ( ! is_array( $array ) ) return $array;
$string = array();

$count = 0;
foreach ( $array as $key => $val ) {
if ( is_array( $val ) )
$val = implode( $glue, $val );

if($count == 0){
$string[] = "{$val}";
}else{
$string[] = "{$glue}{$val}";
}
}

if(empty($separator))$separator = $glue;

return implode( $separator, $string );
}

例3.

将数组转成字符串存储及字符串取出转成数组(serialize & unserialize)

下面看一个实例:

 代码如下 复制代码

<?php
// $Id: test3.php,v 1.0 2011-6-7  goba Exp $
 
/**
 * 测试PHP存储数值
 *
 * @author Lok
 */
 
 
$config = array (
 'host' => 'localhost',
 'user_name' => 'root',
 'password' => '',
 'db_name' => 'ecshop',
 'charset' => 'utf8',
 'remark' => array ('note' => '要注意密码的安全', 'author' => 'Lok')
);
 
 
$str = serialize($config);
$arr = unserialize($str);
 
echo '--------str--------<br />';
var_dump($str);
echo '<br />-------arr----------<br />';
var_dump($arr)
?>结果:

--------str--------
string(221) "a:6:{s:4:"host";s:9:"localhost";
   s:9:"user_name";s:4:"root";
   s:8:"password";s:0:"";
   s:7:"db_name";s:8:"ecshop";
   s:7:"charset";s:4:"utf8";
   s:6:"remark";a:2:{s:4:"note";s:24:"要注意密码的安全";
                s:6:"author";s:3:"Lok";}}"
-------arr----------
array(6) { ["host"]=> string(9) "localhost"
        ["user_name"]=> string(4) "root"
        ["password"]=> string(0) ""
        ["db_name"]=> string(8) "emoishop"
               ["charset"]=> string(4) "utf8"
               ["remark"]=> array(2) { ["note"]=> string(24) "要注意密码的安全"
             ["author"]=> string(3) "Lok" } }

时间: 2024-11-08 23:25:53

php中字符串转换成数组函数explode(),implode()的相关文章

php使用explode()函数将字符串拆分成数组的方法

 这篇文章主要介绍了php使用explode()函数将字符串拆分成数组的方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php使用explode()函数将字符串拆分成数组的方法.分享给大家供大家参考.具体分析如下: explode()函数:字符串拆分成数组 示例代码如下: ? 1 2 3 4 5 6 <?php $str = "朝阳区,海淀区,西城区,东城区,丰台区"; $arr = explode(",",$str); echo &q

php使用explode()函数将字符串拆分成数组的方法_php技巧

本文实例讲述了php使用explode()函数将字符串拆分成数组的方法.分享给大家供大家参考.具体分析如下: explode()函数:字符串拆分成数组 示例代码如下: <?php $str = "朝阳区,海淀区,西城区,东城区,丰台区"; $arr = explode(",",$str); echo "<pre>"; print_r($arr); ?> 结果如下: <pre>Array ( [0] =>

js中的eval()函数把含有转义字符的字符串转换成Object对象的方法_javascript技巧

在项目中遇到一个问题:在前端需要把后台返回的json字符串转换成一个js中的json对象,可是从后台返回的字符串中含有转义字符:\", 在网上查到方法如下,可以处理这种情况: var page = eval("("+data+")");

c++-MFC 中 CString转换成char[]数组

问题描述 MFC 中 CString转换成char[]数组 环境为vs2010 CString szText; char a[1024]; edit1.GetWindowText(szText);//获取edit1编辑框的文本 怎么将CString类 szText 转换为char[]数组的内容? memcpy(a,szText,1024);只能读取文本的第一个字符 解决方案 MFC不建议用char类型了,你用TCHAR,宽字符的处理速度还快些 解决方案二: memcpy(a,(const cha

如何将VB.NET 字符串转换成字节数组

问题描述 e.gDimsAsString="123456"要转换成DimbAsByte()=&H12,msg(1)=&H34,msg(2)=&H56可以怎样做?String長度不是固定的,谢谢DimsAsString="123456"DimbAsByte()=Encoding.ASCII.GetBytes(s)這方法出来的是msg(0)=49,msg(1)=50.........是不行的 解决方案 解决方案二:SubString2位一个长度然

在java中如何将输入流转换成数组

问题描述 在java中如何将输入流转换成数组 客户端发送数组,服务器端接受并排序.如何将接受的输入流转换成数组 解决方案 http://outofmemory.cn/code-snippet/11389/java-convert-inputstream-to-byte-array 解决方案二: 如何将伪数组转换成数组 解决方案三: apache comments io包中的IOUtils中有现成的方法 解决方案四: 字符串转化成整形数组?字节数组取出来的值就是0-127的数.

php 将table转换成数组的函数,单词之间的空格也被删掉了!

问题描述 php 将table转换成数组的函数,单词之间的空格也被删掉了! 下面是我用的函数,可以正常转换,就是转换之后 英语句子里面单词之间没有空格了,谁帮我看下. function get_td_array($table) { $td_array = ""; $table = preg_replace("'<table[^>]*?>'si", "", $table); $table = preg_replace("

linux中字符串转换函数 simple_strtoul【转】

转自:http://blog.csdn.net/tommy_wxie/article/details/7480087 Linux内核中提供的一些字符串转换函数: lib/vsprintf.c [html] view plain copy print? 1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) 2. unsigned long simple_strtoul(const

把普通字符串转换成二进制字符串的函数写出来了,和大家分享一下。

二进制|函数|转换|字符串 '普通字符串转换成二进制字符串函数Function Str2Bin(String)  Dim i, tmpbin  For i=1 to strLength(String)    tmpbin = tmpbin & ChrB(Asc(Mid(String,I,1)))  Next  Str2Bin = tmpbinEnd Function '以下函数来自ChinaASP,计算字符串的真正字节数(支持中文)Function strLength(str)   If (le