Trying to extract only certain values from a multidirectional array
Hi,
I am trying to extract the following array...
Code:
array('movies','romancemovies','scifimovies','comedymovies','books','thrillerbooks','autobiographies','magazines','music','rock','pop','soulmusic','reggaemusic','homegarden','kitchen','bedroom','bathroom','garden','other')
... from the mutlidirectional array that I put at the bottom of my post.
Basically, I want to isolate the words which are non-capital.
Please let me know if you have a suggestion..
Cheers
Code:
$Allcategories=array(array(array("Movies", 'movies'),
array("Action Movies", 'romancemovies'),
array("Sci-fi Movies", 'scifimovies'),
array("Comedy Movies", 'comedymovies')
),
array(array("Books", 'books'),
array("Thriller Books", 'thrillerbooks'),
array("Auto Biographies", 'autobiographies'),
array("Magazines", 'magazines'),
),
array(array("Music", 'music'),
array("Rock", 'rock'),
array("Pop", 'pop'),
array("Soul Music", 'soulmusic'),
array("Reggae Music", 'reggaemusic'),
),
array(array("Home & Garden", 'homegarden'),
array("Kitchen", 'kitchen'),
array("Bedroom", 'bedroom'),
array("Bathroom", 'bathroom'),
array("Garden", 'garden'),
array("Other Furnitures", 'other')
),
);
Hi again,
I found a partial solution. See below..
But I can't get all those results to fit into one array, as I said in the post above.
How do you put all the results from the loop into an array?
Code:
$numOfLayers=count($Allcategories);
for ( $layer = 0; $layer < $numOfLayers; $layer++ )
{
$numOfRows=count($Allcategories[$layer]);
for ( $row = 0; $row < $numOfRows; $row++ )
{
$numOfColumns=count($Allcategories[$layer][$row]);
for ( $col = 1; $col < 2; $col++ )
{
$CategoriesLowerCase=($Allcategories[$layer][$row][$col]);
print_r($CategoriesLowerCase);
echo "<br />";
}
}
}
I believe this gives you the required result:
PHP Code:
$categories = array();
foreach ( $Allcategories as $category ) {
foreach ( $category as $item ) {
$categories [] = $item [ 1 ];
}
}
echo '<pre>' . print_r ( $categories , true ) . '</pre>' ; //Prints out the result
All code given is free and non-refundable.
Hi Bionoid,
Thank you very much for that!
I like the simplicity of it.
I actually found a solution too, but more complicated. Looking back at how my code was complicated, I feel ridiculous Here is it:
Code:
$numOfLayers=count($Allcategories);
for ( $layer = 0; $layer < $numOfLayers; $layer++ )
{
$categoriesNonCapital[]=$Allcategories[$layer][0][1];
$categoriesCapital[]=$Allcategories[$layer][0][0];
$numOfRows=count($Allcategories[$layer]);
for ( $row = 1; $row < $numOfRows; $row++ )
{
$numOfColumns=count($Allcategories[$layer][$row]);
for ( $col = 0; $col < 1; $col++ )
{
$categoriesNonCapital[]=$Allcategories[$layer][$row][1];
$categoriesCapital[]=$Allcategories[$layer][$row][$col];
}
}
}
Last edited by eric01; 01-25-2012 at 01:51 PM .
Originally Posted by
eric01
I actually found a solution too, but more complicated. Looking back at how my code was complicated, I feel ridiculous
Here is it:
The point is that you tried and would be able to improve on it the next time you face a similar problem.
All code given is free and non-refundable.
Yes, I am keeping that 3 nested for loop in mind in case I need it for something more useful
Thanks again.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Bookmarks