此数组是动态的,可以包含任意数量的记录,并且可以具有任何级别的嵌套数组:
Array
(
[name] => richard
[email] => richard@gmail.com
[address] => Array
(
[city] => paris
[zip] => 12121
)
[address1] => Array
(
[city] => paris
[zip] => 12121
)
[address3] => Array
(
[city] => paris
[zip] => 12121
)
)
我试图从嵌套数组键构造一个字符串.
我需要使用循环从键构造这样的字符串:
结果应该是:
address.city
address.zip
address1.city
address1.zip....so on
如何使用递归实现?
解决方法:
这个递归函数会做你想要的.它检查数组当前级别的每个项目,如果是数组,则将当前键附加到该数组的所有键,并根据需要进行递归.如果该项不是数组,则将其键附加到该级别的输出.
function list_keys($array) {
$output = array();
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach (list_keys($v) as $path) {
$output[] = "$k.$path";
}
}
else {
$output[] = $k;
}
}
return $output;
}
print_r(list_keys($array));
输出(适用于您的样本数据)
Array (
[0] => name
[1] => email
[2] => address.city
[3] => address.zip
[4] => address1.city
[5] => address1.zip
[6] => address3.city
[7] => address3.zip
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。