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?
You could use array_map()
and implode()
...
$a = array_map(function($obj) { return $obj->foo; }, array(1=>$obj1 , 2=>$obj2 , 3=>$obj3)); $a = implode(", ", $a);
With PHP 7.0+ you can use array_column
for this.
echo implode(',', array_column($a, 'foo'));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With