php一维数据转多维
2014-05-02 23:33
549 查看
今天在论坛里看到有个朋友的需求,见证csdn的版主都不愧是大牛的角色存在啊!!!保存起来,方便以后需要的时候使用。
![](https://img-blog.csdn.net/20140502232752390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGhwZmVuZ2h1bw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
字符串为:
版主解答为:
打印出来的数组为:
![](https://img-blog.csdn.net/20140502233054515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGhwZmVuZ2h1bw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
字符串为:
1 = 光电鼠标 2 = 机械鼠标 3 = 没有鼠标 1.1 = 黑色光电鼠标 1.2 = 红色光电鼠标 1.2.1 = 蓝牙红色光电鼠标
版主解答为:
<?php
$s =<<< TXT
1 = 光电鼠标 2 = 机械鼠标 3 = 没有鼠标 1.1 = 黑色光电鼠标 1.2 = 红色光电鼠标 1.2.1 = 蓝牙红色光电鼠标
TXT;
$res = array();
foreach(preg_split("/[\r\n]+/", $s) as $r) {
list($k, $txt) = explode(' = ', $r);
$p =& $res;
foreach(explode('.', $k) as $v) {
if(! isset($p[$v])) $p[$v] = array('txt' => $txt, 'child' => array());
$p =& $p[$v]['child'];
}
}
print_r($res);
?>
打印出来的数组为:
Array ( [1] => Array ( [txt] => 光电鼠标 [child] => Array ( [1] => Array ( [txt] => 黑色光电鼠标 [child] => Array ( ) ) [2] => Array ( [txt] => 红色光电鼠标 [child] => Array ( [1] => Array ( [txt] => 蓝牙红色光电鼠标 [child] => Array ( ) ) ) ) ) ) [2] => Array ( [txt] => 机械鼠标 [child] => Array ( ) ) [3] => Array ( [txt] => 没有鼠标 [child] => Array ( ) ) )看到这些评论我笑啦:
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- php xml 入门学习资料
- PHP简单系统数据添加以及数据删除模块源文件下载