Session Arrays and echo a complete single entry

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
Peuplarchie
Forum Contributor
Posts: 148
Joined: Sat Feb 04, 2006 10:49 pm

Session Arrays and echo a complete single entry

Post by Peuplarchie »

Good day to you all,
I'm working around array and session and I was wondering how can I retrieve all array that are from level one.

This array is a file array.

I'm working with a multidimensional array.

Here is my code :

Code: Select all

 
 
 
<?php
 
session_start(); 
 
   function recur_dir($dir)
   {
       $dirlist = opendir($dir);
       while ($file = readdir ($dirlist))
       {
           if ($file != '.' && $file != '..')
           {
               $newpath = $dir.'/'.$file;
               $level = explode('/',$newpath);
               if (is_dir($newpath))
               {
                   $mod_array[] = array(
                           'level'=>count($level)-1,
                           'path'=>$newpath,
                           'name'=>end($level),
                           'kind'=>'dir',
                           'mod_time'=>filemtime($newpath),
                           'content'=>recur_dir($newpath) );
               }else{ 
                   $mod_array[] = array(
                           'level'=>count($level)-1,
                           'path'=>$newpath,
                           'name'=>end($level),
                           'kind'=>'file',
                           'mod_time'=>filemtime($newpath),
                           'size'=>filesize($newpath) );
              }
           }
       }
       closedir($dirlist);
       
   ksort($mod_array);   
 
$_SESSION['listimages']=$mod_array; 
   
       return $mod_array;
   }
   
   echo '<pre>';
   print_r(recur_dir('Art'));
   echo '</pre>';
   
?>
 
 
 


Code: Select all

 
 
 
<?php
session_start();
Print_r ($_SESSION);
echo "<p>";
 
//echo a single entry from the array
echo $_SESSION['listimages']['level'][2];
?> 
 
 

Thanks !
nyoka
Forum Commoner
Posts: 45
Joined: Thu Apr 09, 2009 12:53 pm

Re: Session Arrays and echo a complete single entry

Post by nyoka »

You could loop through the whole array checking the value of level, something like:

Code: Select all

 
function getLevelArray($mod_array, $level) {
    $filtered_array = array();
    foreach ($mod_array AS $single_array) {
        if ($single_array['level'] == $level) {
            $filtered_array[] = $single_array;
        }
    }
    return $filtered_array;
}
 
This will be sufficiently flexible to allow you to retrieve all entries for any level as required. Call it in this sort of way:

Code: Select all

 
$array = getLevelArray($mod_array, 1);
 
Hope this helps.
Post Reply