gpt4 book ai didi

php - 在 array_walk_recursive 函数之后获取父数组名称

转载 作者:可可西里 更新时间:2023-11-01 12:54:20 26 4
gpt4 key购买 nike

我使用以下函数来验证搜索词是否在我的文件夹的文件名中。

$files2=list_files("documents/minelli");

Class Commentaire_filter{
static function test_print($item, $key, $value)
{
if (preg_match("#".$value."#", $item))

{
$array = Array($key=>$item);
print_r($array);
?>

<a href="documents/minelli/<?php echo $item; ?>"><?php echo $key.' '. $item; ?></a><br />
<?php

}
}
}


array_walk_recursive($files2, 'Commentaire_filter::test_print',$motrecherche );

我获得了一个文件列表。

我想添加一个链接以允许用户下载该文件。

当我使用 array_walk_recursive 函数时,我只能获取文件名和 key 。如何获取父数组的名称以建立链接?

这里是我的 $files 的摘录:

数组(大小=5)

'管理员'=>

array (size=5)

0 => string 'campagne-sanmarina.jpg' (length=22)

1 => string 'COSMO Echantillons ETE 2009.xls' (length=31)

2 => string 'COSMOPARIS Echantillons MARO Hiver 2011 311-411.xls' (length=51)

3 => string 'cosmoparis-boutique.jpg' (length=23)

4 => string 'minelli-20-ans.png' (length=18)

'商务'=>

array (size=4)

0 => string 'a-gagner-cosmoparis.jpg' (length=23)

1 => string 'CONTROLE 2009.pdf' (length=17)

2 => string 'cosmoparis-boutique.jpg' (length=23)

3 => string 'soldes-cosmoparis.jpg' (length=21)

'手势'=>

array (size=1)

'PROCEDURES' =>

array (size=5)

0 => string 'cosmoparis-boutique.jpg' (length=23)

1 => string 'flux-ecommerce-smc.pdf' (length=22)

2 => string 'Minelli-Lyon.jpg' (length=16)

3 => string 'sanmarina-magasin-interieur.jpg' (length=31)

4 => string 'visuel_chaussures_minelli_printemps_ete_2009.jpg' (length=48)

'Magasins' =>

array (size=2)

0 => string 'COSMO Echantillons ETE 2009.xls' (length=31)

1 => string 'san-marina-saint-etienne.jpg' (length=28)

'人文资源'=>

array (size=7)

'ACTUALITES PAYE' =>

array (size=3)

0 => string 'COSMOPARIS Echantillons MARO Hiver 2011 311-411.xls' (length=51)

1 => string 'cosmoparis-boutique25.jpg' (length=23)

2 => string 'minelli-tours.jpg' (length=17)
...

对于“cosmoparis-boutique25.jpg”,我想获取父数组名称(“Ressources Humaines”=>“ACTUALITES PAYE”)。我怎样才能得到这些信息来建立一个像'myfolder/Ressources Humaines/ACTUALITES PAYE/cosmoparis-boutique25.jpg 这样的链接?

感谢您的帮助!

最佳答案

您将不得不放弃 array_walk_recursive 并开始您自己的递归遍历。这将允许您在递归时维护或传递自定义状态信息。

例如:

function my_walk_recursive(array $array, $path = null) {
foreach ($array as $k => $v) {
if (!is_array($v)) {
// leaf node (file) -- print link
$fullpath = $path.$v;
// now do whatever you want with $fullpath, e.g.:
echo "Link to $fullpath\n";
}
else {
// directory node -- recurse
my_walk_recursive($v, $path.'/'.$k);
}
}
}

关于php - 在 array_walk_recursive 函数之后获取父数组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18447664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com