Extract specific information from a PHP Multidimensional Array

Posted on 16th Feb 2014 by admin

Howdy! I've racked my brain over this for 24 hours now. I think it's time I asked for help. I'm learning PHP and believe my I've manipulated many code blocks trying to get this to work with for and foreach and while statements. There must be something I'm missing in my studies about arrays but anyway here is the issue.
I have a multidimensional array. From that array I would like to extract only the values of a specific key['name'] so that I can then output it into html form with a special identifier. I was able to do this with nested if statements but that seemed a bit overkill to me.
Here is the code I came up. I know there has to be a more efficient way of getting these results.
Here is the Array code:
Code: $options = array(

array( "name" => "General Administrative Settings",
"type" => "title"),

array( "type" => "open"),

array( "name" => "Colour Scheme",
"desc" => "Which colour scheme would you like?",
"id" => $shortname."_colourscheme",
"type" => "select",
"std" => "Choose a colour scheme:",
"options" => $styles),

array( "name" => "Portfolio Category",
"desc" => "Select the category portfolio items are being posted in.",
"id" => $shortname. "_portfolio_cat",
"type" => "select",
"std" => "Choose a category:",
"options" => $getcat),

array( "name" => "Definition List",
"desc" => "Select the page used as a definition list page.",
"id" => $shortname."_definition_list",
"type" => "select",
"std" => "Select a page:",
"options" => $getpag),


array( "name" => "Blog page",
"desc" => "Select the page to be used as a blog (post) page.",
"id" => $shortname."_blogpage",
"type" => "select",
"std" => "Select a page:",
"options" => $getpag),

array( "type" => "close")

);
Here is my output code:
Code: <?php
if($options['name'] = "Colour Scheme"){
echo '<div id="col_schm">Colour Scheme</div>';
if($options['name'] = "Definition List") {
echo '<div id="def_lst">Definition List</div>';
}
}
?>

If you can help I would appreciate it.

Thanks

Other forums