tags:

views:

23

answers:

1

I want to be able to pull the name of the file and url I'm currently on, set two variables (filename, folder), and check it against an array. Depending what the values are, we set an 'active' class to that < li> to show the page is a part of that section.

I've never really used arrays before, but I did a little research thinking they would be the most logical way to do this. I setup an array with the folder names, and what pages should be there

$navPages = array ( "band" => array ("biography","index"),
                    "music" => array ("discography","lyrics","meanings",),
                    "site" => array ("about","team")
                  );

So above, the folder /band/ should have biography.php and index.php. So now, I need a way to look through that array and make a match so that if I'm visiting "site.com/band/biography.php" I'm able to to check the array and say "Yes, you're on this page. Now apply an 'active' class to the "Band" < LI>.

So far, I'm able to get the filename

$page = basename($_SERVER['PHP_SELF'], ".php");

Now, I can't figure out how to check each array to see if I'm in the right page. I tried

if(in_array($page, $navPages[band])) {
   $class = 'active';
}

And that works, but I figured there has to be way to check all 3 arrays, 'band', 'music', 'site' all at once. So i want to see if the filename is in the array, but also I need to make sure it's in the right place. For example, index.php can be in any folder, I only want a true statement if index.php is in the 'band' array, not just overall $navPages array.

Can someone help me out with this? I tried to be as detailed as possible, let me know if there's something I'm missing.

Also, this is the first time I try doing a nav section like this. So if you see that I'm missing some logic on what I need to make this work, any tips would be appreciated, Thank you!

A: 

Don't specify the key band:

if(in_array($page, $navPages)) {
   $class = 'active';
}

This will look for the current page into the entire array and if so, condition will set the class to current.

Sarfraz
Thanks for the reply, I tried this, but it didn't give me a true statement. Also (I edited the post to clarify this), I need to check the array against the URL as well, to make sure I'm in the right place- "So i want to see if the filename is in the array, but also I need to make sure it's in the right place. For example, index.php can be in any folder, I only want a true statement if index.php is in the 'band' array, not just overall $navPages array."
scatteredbomb
Sarfraz