搜索文档
首页
HTML/CSS
JavaScript
服务端开发
Java教程
移动端
数据库
当前位置:
首页
服务端开发
PHP 教程
PHP 高级教程
源代码
清空
点击运行
<?php //定义递归函数以提取嵌套值 function printValues($arr) { global $count; global $values; //检查输入是否为数组 if(!is_array($arr)){ die("错误:输入不是数组"); } /* 遍历数组,如果value本身是数组,则递归调用 函数将找到的值添加到输出项目数组中, 并为找到的每个值将计数器加1 */ foreach($arr as $key=>$value){ if(is_array($value)){ printValues($value); } else{ $values[] = $value; $count++; } } // 返回在数组中找到的总计数和值 return array('total' => $count, 'values' => $values); } //将JSON编码的字符串分配给PHP变量 $json = '{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "characters": ["Harry Potter", "Hermione Granger", "Ron Weasley"], "genre": "Fantasy Fiction", "price": { "paperback": "$10.40", "hardcover": "$20.32", "kindle": "4.11" } } }'; //将JSON数据解码为PHP关联数组格式 $arr = json_decode($json, true); //调用该函数并打印所有值 $result = printValues($arr); echo "<h3>" . $result["total"] . " value(s) found: </h3>"; echo implode("<br>", $result["values"]); echo "<hr>"; //打印一个值 echo $arr["book"]["author"] . "<br>"; //输出: J. K. Rowling echo $arr["book"]["characters"][0] . "<br>"; //输出: Harry Potter echo $arr["book"]["price"]["hardcover"]; //输出: $20.32 ?>
运行结果