Welcome 微信登录

首页 / 网页编程 / PHP / php中如何把一维数据转多维

php中如何把一维数据转多维2014-08-31 csdn博客 风火程序员今天在论坛里看到有个朋友的需求,见证csdn的版主都不愧是大牛的角色存在啊!!!保存起来,方便以后需要的时候使用。

字符串为:

1 = 光电鼠标2 = 机械鼠标3 = 没有鼠标1.1 = 黑色光电鼠标1.2 = 红色光电鼠标1.2.1 = 蓝牙红色光电鼠标
版主解答为:

<?php$s =<<< TXT1 = 光电鼠标2 = 机械鼠标3 = 没有鼠标1.1 = 黑色光电鼠标1.2 = 红色光电鼠标1.2.1 = 蓝牙红色光电鼠标TXT; $res = array();foreach(preg_split("/[
]+/", $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() ) )