***In this instead of using*** `Mage::getModel('catalog/product_type_configurable')` and getting child product color option. You can ***use product collection resource model*** `Mage::getResourceModel('catalog/product_collection')` and filter that *collection by that configurable child ids* Then ***group by that collection attribute color*** using function `groupByAttribute($attributeCode)`. and you get your desire result // get childs ids in array $childIds=Mage::getResourceSingleton('catalog/product_type_configurable') ->getChildrenIds($_product->getId()); // Create a collection and filter childs ids $collection =Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('*')-> addAttributeToFilter('entity_id', array('in' => array_values($childIds[0])))->addAttributeToFilter( 'status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLE) );; // group by color attribute $collection->groupByAttribute('color'); foreach($collection as $eachPro){ } ---------- **Note:** If ***catalog product flat enable*** then the ***collection does not contain disable product***.For `getting disable products` in collection whenever flat enable,then use question: [How to get disable product collection whenever flat enable at frontend][1] [1]: http://magento.stackexchange.com/q/69420/4564