ホームページ  >  記事  >  php教程  >  PHPで一次元データを多次元に変換する

PHPで一次元データを多次元に変換する

WBOY
WBOYオリジナル
2016-06-21 08:48:181713ブラウズ

今日フォーラムで友人のリクエストを見て、csdn のモデレーターが強力な権限を持つに値することを目の当たりにしました。 ! !後で必要なときに使用できるように保存してください。


文字列は次のとおりです:

vcD4KPHByZSBjbGFzcz0="brush:java;">1 = 光学式マウス 2 = メカニカルマウス 3 = マウスなし 1.1 = 黒の光学式マウス 1.2 = 赤の光学式マウス 1.2.1 = Bluetooth 赤色光学式マウス
モデレーターの答えは次のとおりです。

<?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
                (
                )
 
        )
 
)
これらのコメントを見て笑ってしまいました:







声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。