まぁこんなデータを扱う時の話ですが、、、
- //-------------------------------------------
- "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;
- }
0 件のコメント:
コメントを投稿