首页 > 代码库 > php一维数据转多维
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 ( ) ) )看到这些评论我笑啦:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。