我有一个对象数组,我想从每个对象中取出一个特定的私有属性,以形成一个分隔字符串。
我只对数组的一个属性感兴趣。我知道如何通过foreach()
来处理数据集,但是有函数式的方法吗?
$ids = "";
foreach ($itemList as $item) {
$ids = $ids.$item->getId() . ",";
}
// $ids = "1,2,3,4"; <- this already returns the correct result
我的课是这样的:
class Item {
private $id;
private $name;
function __construct($id, $name) {
$this->id=$id;
$this->name=$name;
}
//function getters.....
}
样本数据:
$itemList = [
new Item(1, "Item 1"),
new Item(2, "Item 2"),
new Item(3, "Item 3"),
new Item(4, "Item 4")
];
3条答案
按热度按时间brc7rcf01#
在
implode
之前使用array_map
:u1ehiz5o2#
您已经对getter脚本进行了“yatta-yatta“艾德化,因此我将为两种getter方法演示两种函数式风格的方法。
1.如果类包含显式命名的方法:(Demo)
然后你可以使用2个周期:
或1个周期,条件为:
1.如果类包含魔术方法
__get()
:(Demo)然后你可以使用2个周期:
或1个周期,条件为:
r6l8ljro3#
您可以使用
$ids = implode(',',$itemList);