ホームページ >バックエンド開発 >PHPチュートリアル >このコードの何が問題であり、なぜエラーが報告されるのでしょうか?

このコードの何が問題であり、なぜエラーが報告されるのでしょうか?

WBOY
WBOYオリジナル
2016-06-23 13:35:151307ブラウズ

Array(    [0] => Array        (            [id] => 3            [fid] => 0            [name] => 333            [son] => Array                (                    [0] => Array                        (                            [id] => 2                            [fid] => 3                            [name] => 2_3                            [son] => Array                                (                                    [0] => Array                                        (                                            [id] => 4                                            [fid] => 2                                            [name] => 2_4                                        )                                )                        )                    [1] => Array                        (                            [id] => 5                            [fid] => 3                            [name] => 2_3                        )                )        )    [1] => Array        (            [id] => 1            [fid] => 0            [name] => 111        ))

これはツリー構造の配列です。
function tree_add_level($tree){    foreach($tree as &$val){    	if(!isset($val['_level'])){    	    $val['_level']=0;//顶层为0    	}		if(isset($val['son'])){            $val['son']['_level']=$val['_level']+1; //下级加1            tree_add_level($val['son']);        }    }    return $tree;}


構文エラーが発生します。ありがとうございます。
ディスカッションへの返信 (解決策)

ヒント: 警告: D:WebBOOTnewfile.php の 28 行目では、スカラー値を配列として使用できません

tree_add_level($val['son']); このコードの問題は何ですか? ? それは単なる再帰です

$tree が配列であるかどうかを判断する必要があります

$tree と $tree['son'] は 100% 配列です。は上記の配列です

配列を貼り付けることができますか、テストさせてください

$tree が配列であるかどうかを判断する必要があります

ありがとう、追加しました


あなたの配列を貼り付けることができますか、させてくださいテストしてみます


ありがとう、それは論理エラーです。レイヤー参照がありません。

function Tree_add_level(&$tree,$n=0){

foreach($tree as &$val) {
$val['_level']= $n;
isset($val['son']) && Tree_add_level($val['son'],$n+1);
}
}

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