今天在論壇裡看到有個朋友的需求,見證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
(
)
)
)
查看本欄目