我将尝试用一个例子解释我想用这个方法完成的事情:
您有一个对象Person
,其方法getName()
会返回PersonName
。
将[PersonA, PersonB]
转换为[PersonNameA, PersonNameB]
。
我知道PHP有一个方法array_column
来通过属性实现此目的。但我想知道是否还有一种方法可以用对象的方法来做到这一点。
答案 0 :(得分:1)
要扩展评论中提到的array_map()
@axiax的使用情况,您可以为它提供第一个参数的闭包:
<?php
class Person
{
private $name;
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
}
$personA = new Person();
$personB = new Person();
$personA->setName('bob');
$personB->setName('alice');
$objects = [
$personA,
$personB
];
$names = array_map(
function(Person $p) {
return $p->getName();
},
$objects
);
var_dump($names); // ['bob', 'alice']