まぁこんなデータを扱う時の話ですが、、、
//------------------------------------------- { "doc":{ "pages":{ "layers":[ { "items":[ { "name":"abcdefgh", 。。。。データいろいろ。。。。 "items":[ { 。。理論上無限階層下。。データいろいろ。。。。うん。
*["items > name == {$tareget}"]
セレクタみたいなやつで一発でかけるならいいんですが、、、まぁそういうクラスを書いてもいいんだけど、、、それほどでもなかったので、なめてみるコードを書いてみました
こんな感じで。
//------------------------------------------- // objectのTREEを下っていって、*['name']=$nameのとき*[$tag]=$valueをセットする件。 //------------------------------------------- public static function searchAndSet(&$json,$name,$tag,$value){ $ar = array_keys($json); $n = count($ar); for($w=0;$w<$n;$w++){ $br = @array_keys( $json[ $ar[$w] ] ); if(count($br) > 0){ $ret = xxxxxxxx::searchAndSet($json[$ar[$w]],$name,$tag,$value); if($ret != null) return $ret; } if($json[ $ar[$w] ]['name'] == $name){ $json[ $ar[$w] ][$tag] = $value; return $value; } } return null; }追記) あ、NAMEが一意なのが前提なコードです。
0 件のコメント:
コメントを投稿