получить имя родительского массива после функции array_walk_recursive

Я использую следующую функцию, чтобы проверить, есть ли поисковое слово в имени файлов моей папки.

$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, я могу получить только имя файла и ключа. Как я могу получить имя родительских массивов, чтобы сделать ссылку?

Здесь выдержка из моих $ файлов:

array (size = 5)

'Administratifs' =>

 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) 

'Gestion' =>

 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) 

«Магасины» =>

 array (size=2) 0 => string 'COSMO Echantillons ETE 2009.xls' (length=31) 1 => string 'san-marina-saint-etienne.jpg' (length=28) 

'Ressources Humaines' =>

 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?

Спасибо за помощь!

Solutions Collecting From Web of "получить имя родительского массива после функции array_walk_recursive"

Вам придется array_walk_recursive и 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, eg: echo "Link to $fullpath\n"; } else { // directory node -- recurse my_walk_recursive($v, $path.'/'.$k); } } }