PHP中的动态数组遍历
发布时间:2020-12-13 13:48:51 所属栏目:PHP教程 来源:网络整理
导读:我想从一维数组构建一个层次结构,并且(几乎)可以使用或多或少的硬编码代码.如何使代码动态化? 也许用while(isset($array [$key])){…}? 或者,有额外的功能?像这样:$out = my_extra_traverse_function($array,$key); function array_traverse($array,$key
我想从一维数组构建一个层次结构,并且(几乎)可以使用或多或少的硬编码代码.如何使代码动态化?
也许用while(isset($array [$key])){…}? function array_traverse($array,$key=NULL) { $out = (string) $key; $out = $array[$key] . "/" . $out; $key = $array[$key]; $out = $array[$key] ? $array[$key] . "/" . $out : ""; $key = $array[$key]; $out = $array[$key] ? $array[$key] . "/" . $out : ""; $key = $array[$key]; $out = $array[$key] ? $array[$key] . "/" . $out : ""; return $out; } $a = Array(102=>101,103=>102,105=>107,109=>105,111=>109,104=>111); echo array_traverse($a,104); 产量:107/105/109/111/104
我想你想要:
function array_traverse($array,$key = null) { $out = (string) $key; if (isset($array[$key])) { $out = array_traverse($array,$array[$key]) . '/' . $out; } return $out; } 或者,对于非递归方法: function array_traverse($array,$key = null) { $out = (string) $key; while(isset($array[$key])) { $out = $array[$key] . '/' . $out; $key = $array[$key]; } return $out; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |