zigojacko Posted July 16, 2015 Share Posted July 16, 2015 I need to list an array (comma separated) and the data I need is available in the var_dump. I just don't know how to write the syntax to display the array list. From within: var_dump ($product->getMediaGalleryImages()); I can see multiple instances of: ["url"]=> string(89) "https://www.example.com/media/catalog/product/x/x/x-image.jpg" What do I need to write in order to list all the ["url"] Thanks in advance. Quote Link to comment Share on other sites More sharing options...
scootstah Posted July 16, 2015 Share Posted July 16, 2015 Did you try the manual? Quote Link to comment Share on other sites More sharing options...
zigojacko Posted July 16, 2015 Author Share Posted July 16, 2015 Did you try the manual? Of course. It's the first place I look. I couldn't resolve it after trying things from the manual... Syntactically, I don't think this is right:- $array = array($product->getMediaGallery()); So, the following returns NULL:- var_dump ($array["url"]); In case you've missed the obvious, I'm not really sure what I am doing with this hence why I have come here for help. Quote Link to comment Share on other sites More sharing options...
scootstah Posted July 16, 2015 Share Posted July 16, 2015 You indicated in your first post that $product->getMediaGallery() was already returning an array, so you do not need to wrap it in another array. Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted July 16, 2015 Share Posted July 16, 2015 (edited) Just to clarify, does $product->getMediaGallery() contain an array? If so, you should be able to use a foreach loop (or loops) to get all the 'url' parts. Edited July 16, 2015 by cyberRobot Quote Link to comment Share on other sites More sharing options...
ginerjm Posted July 16, 2015 Share Posted July 16, 2015 If you couldn't use the manual to figure out this problem, how the heck are you writing all your other php code? $str = ''; foreach($array as $item) $str .= $item .', '; $str = trim($str,','); echo $str; OR the simpler approach: $str = implode(',',$array); echo $str; I think you should spend some time reading the manual and getting familiar with the language you have chosen to use. Quote Link to comment Share on other sites More sharing options...
zigojacko Posted July 16, 2015 Author Share Posted July 16, 2015 You indicated in your first post that $product->getMediaGallery() was already returning an array, so you do not need to wrap it in another array. Just to clarify, does $product->getMediaGallery() contain an array? If so, you should be able to use a foreach loop (or loops) to get all the 'url' parts. I don't think I explained well (or correctly). I think $product->getMediaGallery() is an object. The output of var_dump ($product->getMediaGalleryImages()); is below:- object(Varien_Data_Collection)#402 (13) { ["_items":protected]=> array(5) { [226]=> object(Varien_Object)#401 (7) { ["_data":protected]=> array(12) { ["value_id"]=> string(3) "226" ["file"]=> string(35) "/k/i/kimono-sleeve-top-black_1_.jpg" ["product_id"]=> string(2) "51" ["label"]=> string(55) "silk print bamboo kimono sleeve zip top " ["position"]=> string(1) "1" ["disabled"]=> string(1) "0" ["label_default"]=> string(55) "silk print bamboo kimono sleeve zip top " ["position_default"]=> string(1) "1" ["disabled_default"]=> string(1) "0" ["url"]=> string(89) "https://www.example.com/media/catalog/product/k/i/kimono-sleeve-top-black_1_.jpg" ["id"]=> string(3) "226" ["path"]=> string(102) "/var/www/vhosts/example.com/httpdocs/media/catalog/product/k/i/kimono-sleeve-top-black_1_.jpg" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } } [227]=> object(Varien_Object)#374 (7) { ["_data":protected]=> array(12) { ["value_id"]=> string(3) "227" ["file"]=> string(35) "/k/i/kimono-sleeve-top-black_2_.jpg" ["product_id"]=> string(2) "51" ["label"]=> string(60) "silk print bamboo kimono sleeve zip top front" ["position"]=> string(1) "2" ["disabled"]=> string(1) "0" ["label_default"]=> string(60) "silk print bamboo kimono sleeve zip top front" ["position_default"]=> string(1) "2" ["disabled_default"]=> string(1) "0" ["url"]=> string(89) "https://www.example.com/media/catalog/product/k/i/kimono-sleeve-top-black_2_.jpg" ["id"]=> string(3) "227" ["path"]=> string(102) "/var/www/vhosts/example.com/httpdocs/media/catalog/product/k/i/kimono-sleeve-top-black_2_.jpg" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } } [225]=> object(Varien_Object)#375 (7) { ["_data":protected]=> array(12) { ["value_id"]=> string(3) "225" ["file"]=> string(35) "/k/i/kimono-sleeve-top-black_3_.jpg" ["product_id"]=> string(2) "51" ["label"]=> string(62) "silk print bamboo kimono sleeve zip top quarter" ["position"]=> string(1) "3" ["disabled"]=> string(1) "0" ["label_default"]=> string(62) "silk print bamboo kimono sleeve zip top quarter" ["position_default"]=> string(1) "3" ["disabled_default"]=> string(1) "0" ["url"]=> string(89) "https://www.example.com/media/catalog/product/k/i/kimono-sleeve-top-black_3_.jpg" ["id"]=> string(3) "225" ["path"]=> string(102) "/var/www/vhosts/example.com/httpdocs/media/catalog/product/k/i/kimono-sleeve-top-black_3_.jpg" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } } [228]=> object(Varien_Object)#319 (7) { ["_data":protected]=> array(12) { ["value_id"]=> string(3) "228" ["file"]=> string(35) "/k/i/kimono-sleeve-top-black_4_.jpg" ["product_id"]=> string(2) "51" ["label"]=> string(59) "silk print bamboo kimono sleeve zip top back" ["position"]=> string(1) "4" ["disabled"]=> string(1) "0" ["label_default"]=> string(59) "silk print bamboo kimono sleeve zip top back" ["position_default"]=> string(1) "4" ["disabled_default"]=> string(1) "0" ["url"]=> string(89) "https://www.example.com/media/catalog/product/k/i/kimono-sleeve-top-black_4_.jpg" ["id"]=> string(3) "228" ["path"]=> string(102) "/var/www/vhosts/example.com/httpdocs/media/catalog/product/k/i/kimono-sleeve-top-black_4_.jpg" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } } [229]=> object(Varien_Object)#327 (7) { ["_data":protected]=> array(12) { ["value_id"]=> string(3) "229" ["file"]=> string(35) "/k/i/kimono-sleeve-top-black_5_.jpg" ["product_id"]=> string(2) "51" ["label"]=> string(61) "silk print bamboo kimono sleeve zip top detail" ["position"]=> string(1) "5" ["disabled"]=> string(1) "0" ["label_default"]=> string(61) "silk print bamboo kimono sleeve zip top detail" ["position_default"]=> string(1) "5" ["disabled_default"]=> string(1) "0" ["url"]=> string(89) "https://www.example.com/media/catalog/product/k/i/kimono-sleeve-top-black_5_.jpg" ["id"]=> string(3) "229" ["path"]=> string(102) "/var/www/vhosts/example.com/httpdocs/media/catalog/product/k/i/kimono-sleeve-top-black_5_.jpg" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } } } ["_itemObjectClass":protected]=> string(13) "Varien_Object" ["_orders":protected]=> array(0) { } ["_filters":protected]=> array(0) { } ["_isFiltersRendered":protected]=> bool(false) ["_curPage":protected]=> int(1) ["_pageSize":protected]=> bool(false) ["_totalRecords":protected]=> NULL ["_isCollectionLoaded":protected]=> NULL ["_cacheKey":protected]=> NULL ["_cacheTags":protected]=> array(0) { } ["_cacheLifetime":protected]=> int(86400) ["_flags":protected]=> array(0) { } } I have replaced references to the domain with example.com. I need to print a list of the ["url"] that can be seen in this var_dump and I don't know the correct syntax to do this. Hope that explains a bit better. Quote Link to comment Share on other sites More sharing options...
scootstah Posted July 16, 2015 Share Posted July 16, 2015 Ah, well that's an entirely different thing. You cannot directly access those object properties because they are protected. It's returning a Varien_Data_Collection object, so you need to look there to figure out how to extract the data. Quote Link to comment Share on other sites More sharing options...
Solution zigojacko Posted July 16, 2015 Author Solution Share Posted July 16, 2015 (edited) Thanks for your replies. I figured it out now... $gallery_images = Mage::getModel('catalog/product')->load($product->getId())->getMediaGalleryImages(); $items = array(); foreach($gallery_images as $g_image) { $items[] = $g_image['url']; } Then I could fetch them outside of the loop with:- implode(', ', $items); Thanks for your replies anyway... Edited July 16, 2015 by zigojacko Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted July 16, 2015 Share Posted July 16, 2015 No problem, glad you figured it out! Note that I marked the topic as solved. If you need anything else, you can mark it as unsolved...or start a new topic. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.