www.webdeveloper.com
Results 1 to 6 of 6

Thread: Trying to extract only certain values from a multidirectional array

  1. #1
    Join Date
    Jan 2012
    Posts
    34

    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') 
                          ),
                 );

  2. #2
    Join Date
    Jan 2012
    Posts
    34
    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 />";
    		    	}
    		    }
    }

  3. #3
    Join Date
    Dec 2011
    Location
    Centurion, South Africa
    Posts
    795
    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($categoriestrue) . '</pre>'//Prints out the result 
    JavaScript: Learn | Validate | Compact | bionoid

  4. #4
    Join Date
    Jan 2012
    Posts
    34
    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.

  5. #5
    Join Date
    Dec 2011
    Location
    Centurion, South Africa
    Posts
    795
    Quote Originally Posted by eric01 View Post
    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.
    JavaScript: Learn | Validate | Compact | bionoid

  6. #6
    Join Date
    Jan 2012
    Posts
    34
    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
  •  
HTML5 Development Center



Recent Articles