首页 / PHP / PHP将多维目录数组转换为字符串
PHP将多维目录数组转换为字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP将多维目录数组转换为字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1501字,纯文字阅读大概需要3分钟。
内容图文
![PHP将多维目录数组转换为字符串](/upload/InfoBanner/zyjiaocheng/788/fbc1267bbb09437fb5dae1bb0d29235b.jpg)
我遇到了递归函数,我找不到任何可以完成我需要的东西,所以我希望有人可以帮我解决这个问题.
我有一个给定驱动器的多维目录数组,我需要将它们转换为EACH最深子目录的完整路径字符串.这是阵列:
<?php
$array = array(
'CANON' => array(
'DCIM' => array(
'100CANON',
'101CANON',
'CANONMSC'
),
'CANON_SC' => array(
'IMAGE' => array(
'0001'
),
'DOCUMENT' => array(
'0001'
),
),
'MISC'
));
这是所需的输出:
/CANON/DCIM/100CANON/
/CANON/DCIM/101CANON/
/CANON/DCIM/CANONMSC/
/CANON/CANON_SC/IMAGE/0001/
/CANON/CANON_SC/DOCUMENT/0001/
/CANON/MISC/
这是我到目前为止,但它只适用于第一个最深的目录,并忽略兄弟目录.
<?php
function flatten_directory($array, $prefix = '')
{
$result = '';
foreach($array as $key=>$value)
{
if(is_array($value))
{
$result .= $key .'/'. flatten_directory($value, $prefix . $key . '.');
}
else
{
$result .= $prefix . $key . $value;
}
}
return $result;
}
先感谢您.
解决方法:
前缀的想法很好,但这部分不起作用,因为你可能得到多个结果:
$result .= $key .'/'. flatten_directory($value, $prefix . $key . '.');
而不是返回单个字符串,返回一个字符串数组.你也在混淆何时使用$key和$value.
function flatten_directory($directory, $prefix = "") {
$result = array();
foreach ($directory as $key => $part) {
if (is_array($part)) {
$result = array_merge($result, flatten_directory($part, $prefix . "/" . $key));
} else {
$result[] = $prefix . "/" . $part . "/";
}
}
return $result;
}
输出:
Array
(
[0] => /CANON/DCIM/100CANON/
[1] => /CANON/DCIM/101CANON/
[2] => /CANON/DCIM/CANONMSC/
[3] => /CANON/CANON_SC/IMAGE/0001/
[4] => /CANON/CANON_SC/DOCUMENT/0001/
[5] => /CANON/MISC/
)
内容总结
以上是互联网集市为您收集整理的PHP将多维目录数组转换为字符串全部内容,希望文章能够帮你解决PHP将多维目录数组转换为字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。