Revision: 9677
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 17, 2008 11:25 by gauravjassal
Initial Code
<?php /** * Array2ArrayTree * @package * @author Gaurav Jassal * @copyright <a href="http://www.gauravjassal.com">http://www.gauravjassal.com</a> * @version 1.0 * @access public */ class Array2ArrayTree { public $arrOriginal = array(); public $arrDummy = array(); public $strKey = ""; /** * Array2ArrayTree::__construct() * * @param $arrData Array * @param $arrKey String * @return */ public function __construct($arrData, $arrKey) { $this->arrOriginal = $arrData; $this->strKey = $arrKey; $this->arrDummy = array(); } /** * Array2ArrayTree::makeTree() * * @return Array */ public function makeTree() { for ($i = 0; $i <= sizeof($this->arrOriginal) - 1; $i++) { $keyPosition = $this->searchKey($this->arrOriginal[$i][$this->strKey]); if ($keyPosition == -1) { $this->addNode($this->arrOriginal[$i]); } else { $this->appendNode($this->arrOriginal[$i], $keyPosition); } } return $this->arrDummy; } /** * Array2ArrayTree::searchKey() * * @param $strCurrentValue String * @return */ function searchKey($strCurrentValue) { for ($i = 0; $i <= sizeof($this->arrDummy) - 1; $i++) { if ($this->arrDummy[$i][0][$this->strKey] == $strCurrentValue) { return $i; } } return - 1; } /** * Array2ArrayTree::addNode() * * @param $arrNode Array * @return */ function addNode($arrNode) { $this->arrDummy[sizeof($this->arrDummy)][0] = $arrNode; } /** * Array2ArrayTree::appendNode() * * @param $arrNode Array * @param $keyPosition Integer * @return */ function appendNode($arrNode, $keyPosition) { array_push($this->arrDummy[$keyPosition], $arrNode); } } ?> Usage <?php require_once("array2arraytree.php"); $arrProducts=array( array( "product_id" => "007", "product_name" => "Blackberry R-900 Mobile", "product_price" => "£450", "product_status" =>"1", "product_category" =>"Mobile" ), array( "product_id" => "033", "product_name" => "8 GB Pendrive", "product_price" => "£14.99", "product_status" => "0", "product_category" => "Computers" ), array( "product_id" => "033", "product_name" => "The White Tiger – Aravind Adiga", "product_price" => "£29.99", "product_status" => "1", "product_category" => "Books" ), array( "product_id" => "4501", "product_name" => "The Final Reckoning - Sam Bourne", "product_price" => "£19.99", "product_status" => "0", "product_category" => "Books" ), array( "product_id" => "001", "product_name" => "Wespro Multi-SIM & Touch-screen Mobile", "product_price" => "£150", "product_status" => "1", "product_category" => "Mobile" ), array( "product_id" => "004", "product_name" => "Sigmatel MP4/MP3 + Camera Mobile", "product_price" => "£150", "product_status" => "1", "product_category" => "Mobile" ), array( "product_id" => "034", "product_name" => "The Final Reckoning - Sam Bourne", "product_price" => "£15.79", "product_status" => "0", "product_category" => "Books" ), array( "product_id" => "334", "product_name" => "250 GB Portable Hard Drive", "product_price" => "£79.99", "product_status" => "1", "product_category" => "Computers" ) ); $objTree=new Array2ArrayTree($arrProducts,"product_category"); $arrTree=$objTree->makeTree(); print("<pre>"); print_r($arrTree); print("</pre>"); ?>
Initial URL
http://www.gauravjassal.com/index.php/site/entry/filter_array_into_categorized_format/
Initial Description
Initial Title
Filter Array into Categorized format
Initial Tags
Initial Language
PHP