I have an array of stdClass
objects and I want to build a comma separated list using one specific field of all those stdClass
objects. My array looks like this:
$obj1 = stdClass Object ( [foo] => 4 [bar] => 8 [foo-bar] => 15 );
$obj2 = stdClass Object ( [foo] => 16 [bar] => 23 [foo-bar] => 42 );
$obj3 = stdClass Object ( [foo] => 76 [bar] => 79 [foo-bar] => 83 );
$a = array(1=>$obj1 , 2=>$obj2 , 3=>$obj3);
And I want to implode on foo
of all the stdClass
objects in that array to create a comma separated list. So the desired result is:
4,16,76
Is there any way to do this with implode (or some other mystery function) without having to put this array of objects through a loop?
A very neat solution for this is the
array_reduce()
function, that reduces an array to a single value:You could use
array_map()
andimplode()
...This is actually the best way I've found, it doesn't seem to be answered here properly as the array of objects should be able to handle dynamic size.
This also seems to be the cleanest solution I've seen.