php中如何把一维数据转多维

今天在论坛里看到有个朋友的需求,见证csdn的版主都不愧是大牛的角色存在啊!!!保存起来,方便以后需要的时候使用。

字符串为:

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
                (
                )  

        )  

)

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索鼠标
, 蓝牙
, txt
, array
, 一维数据
, child
一维
php 多维数组转一维、php 多维转一维、php 多维数组变一维、多维数组转一维数组、js多维数组转一维数组,以便于您获取更多的相关知识。

时间: 2024-09-14 03:22:21

php中如何把一维数据转多维的相关文章

php一维数据转多维

今天在论坛里看到有个朋友的需求,见证csdn的版主都不愧是大牛的角色存在啊!!!保存起来,方便以后需要的时候使用. 字符串为: <喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">1 = 光电鼠标 2 = 机械鼠标 3 = 没有鼠标 1.1 = 黑色光电鼠标 1.2

在java中一维数组和二维数组有什么区别吗?

问题描述 在java中一维数组和二维数组有什么区别吗? 求大神指点java中一维数组和二维数组的区别,为什么一位数组是一行 二维数组可以定义多行 解决方案 如图黑色的是一维数组红色的是二维数组一维数组用来存数据二维数组用来存一维数组 解决方案二: JAVA中一维数组和二维数组的定义一维数组及二维数组的用法java中arraylist和一维数组二维数组的转换 解决方案三: 一楼正解,一维和二维的区别就是线和面的区别,一维的数组你就可以通过一个下标来准确定位,而二维的就需要有两个就像坐标系一样,一维

详解C++中的一维数组和二维数组_C 语言

C++一维数组 定义一维数组 定义一维数组的一般格式为:     类型标识符  数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素. 关于一维数组的几点说明: 1) 数组名定名规则和变量名相同,遵循标识符定名规则. 2) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的: int a[10]; int a[2*5]; int a[n*2]; //假设前面已定义了n为常变量 3) 常量表达式的值表示元素的个数,即数组长度.例如,在"int

libmad-提取mp3中真正的音频数据

问题描述 提取mp3中真正的音频数据 用libmad解码,运行./minimad 输出乱码显示decoding error 0x0101(lost synchronization)然后安装了zlib和libid3tag ,这时应该这样修改minimad.c把后面加装的两个库加进去.目地是想获得音频数据(如果数据是十进制或十六进制的更好),最终目地是通过音频数据控制灯光的闪烁(像舞台灯光). 解决方案 内维尔戈达德.最好的内维尔戈达德音频MP3电子书.ffmpeg提取音频.转换为mp3

xcode-获取表中列的全部数据

问题描述 获取表中列的全部数据 代码我想要获取所有引用数据,一共有320个引用.但是只得到了第一个引用. -(NSMutableArray *)getAllQuotesData { NSMutableArray *quotesArray = [[NSMutableArray alloc] init]; NSString *sqlStr = [NSString stringWithFormat:@"SELECT quote FROM quotes"]; sqlite3_stmt *Ret

Dom + Javascript 在本机浏览器中对的表格数据进行排序

dom|javascript|浏览器|排序|数据 在本机浏览器中对的表格数据进行排序在Web应用中,数据从服务器端返回到客户端,以表格形式表现出来.如果要对数据集按指定的列排序显示,常规做法都是向服务器发出请求,服务器端程序重新从数据库中取出按指定列排序的数据,返回给客户端,页面重新显示排序后数据. 采用这种方式有如下缺点:1- 响应时间延迟,每次排序都要向服务器端发送请求,等待结果返回,同时增加网络负载.2- 编程复杂,可维护性差,而且客户端和服务器端代码耦合度很高,客户端和服务器端都要处理排

在.NET Framework中轻松处理XML数据(三)

xml|数据 带验证的阅读器XmlValidatingReader类实现了XmlReader类,它提供了支持多种类型的XML验证:DTD,XML-Data Reduced(XDR)架构,以及XSD,DTD和XSD都是W3C官方推荐的.而XDR是Microsoft早期用于处理XML构架的一种格式. 你可以用XmlVlidatingReader类去验证XML文档和XML片断.XmlValidatingReader类工作在XML阅读器上面---是一个典型的XMLTextReader类实例.XM

Visual Foxpro中的多用户及数据缓冲问题

visual|数据|问题 主题:Visual Foxpro中的多用户及数据缓冲问题 绍 很多狐友(Foxers)都是从Dbase―FoxBase―Foxpro―VFP这样一条路走过来的,如果说从FoxBase 到Foxpro是一次飞跃,那么从Foxpro到VFP就是一次升华.漫漫编程路上的两次大变化都伴随着升级的兴奋与适应的痛苦,惯性思维往往使我们容易忽略新版本的新内容.我们先来看看下面这个在表单中编辑记录的例子: 在Foxpro 2.X时代,我是这样设计的: 1. 在屏幕上放置与表中字段对应的

Java项目中使用Hibernate处理数据

数据|项目 对象-关系映射(O/R映射)是许多软件开发项目的常见需求.数据持久化过程中所涉及到的活动是非常乏味且易于出错的.如果考虑到不可避免的需求变化,我们就面临很大的麻烦:数据存储结构必须与源代码保持同步.再加上移植性问题,事情就变得非常复杂. 而Hibernate可以帮助我们轻松地在永久性存储介质中保存数据,而不需要在选择存储.安装或配置类型方面浪费太多精力.Hibernate允许我们存储任何类型的对象,因此,应用程序不需要知道其数据将使用Hibernate进行持久化.当然,这里提到的任何