解析PHP多维数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了解析PHP多维数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1632字,纯文字阅读大概需要3分钟。
内容图文
这里(下面给出)是一些非常简单的PHP解析我正在做的多维数组.我只是在搜索“突出显示”键,然后将一些键值对存储在另一个数组中.有没有更好的方法来实现这一点(我的意思是在性能方面),而不是有n个foreach循环来达到你想要的.
$json_O=json_decode(file_get_contents($url),true);
foreach($json_O as $section1=>$items1){
if($section1==highlighting){
foreach($items1 as $section2=>$items2){
$key=$section2;
foreach($items2 as $section3=>$items3){
foreach ($items3 as $section4=>$items4){
$value=$items4;
$found[]=array('Key' => $key, 'Value' => $value);
这是我试图解析的示例php对象:
Array
(
[responseHeader] => Array
(
[status] => 0
[QTime] => 3
[params] => Array
(
[indent] => on
[start] => 0
[q] => russian
[fragsize] => 40
[hl.fl] => Data
[wt] => json
[hl] => on
[rows] => 8
)
)
[response] => Array
(
[numFound] => 71199
[start] => 0
[docs] => Array
......
......
[highlighting] => Array
(
[114360] => Array
(
[Data] => Array
(
[0] => AMEki has done it better <em>russian</em>...
....
....
现在有两件事:1)我可以更快地完成吗? 2)我可以更好地设计它吗?
解决方法:
这似乎是不必要的
foreach($json_O as $section1=>$items1){
if($section1==highlighting){
foreach($items1 as $section2=>$items2){
你可以干脆做
foreach($json_O['highlighting'] as $section2=>$items2){
虽然这是未经测试的,但也可以简化其余部分
$riter = new RecursiveArrayIterator($json_O['highlighting']);
$riteriter = new RecursiveIteratorIterator($riter, RecursiveIteratorIterator::LEAVES_ONLY);
$found = array();
foreach ($riteriter as $key => $value) {
$key = $riteriter->getSubIterator($riteriter->getDepth() - 2)->key();
$found[] = compact('key', 'value');
}
就个人而言,我只会使用嵌套的foreach循环.这很容易理解,而我对递归迭代器的创造性使用则不然.
内容总结
以上是互联网集市为您收集整理的解析PHP多维数组全部内容,希望文章能够帮你解决解析PHP多维数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。