您的位置:首页 > 编程语言 > PHP开发

php一维数据转多维

2014-05-02 23:33 549 查看
今天在论坛里看到有个朋友的需求,见证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
(
)

)

)
看到这些评论我笑啦:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php