假设我有一个Person对象数组,person对象具有属性firstName,lastName和age . 现在假设我想要一个所有这些人物对象的第一个名字的数组 . 如何将此Person对象数组转换为firstname字符串数组?
是否有一些我可以使用的数组函数组合,或者我只是使用for循环并创建一个新数组?
你必须循环遍历对象数组 . 使用正常 foreach 或使用array_map .
foreach
function get_first_name($person) { return $person->firstName; } $firstNames = array_map('get_first_name', $people);
你可以用 array_map
array_map
class Person { public $firstName ; public $lastName ; public $age ; function __construct($firstName,$lastName,$age) { $this->firstName = $firstName ; $this->lastName = $lastName ; $this->age = $age ; } } $list = array(); $list[] = new Person("John", "Smith", 22); $list[] = new Person("Jon", "Doe", 19); $list[] = new Person("Jane", "Stack", 21); $lastNames = array_map(function($var){return $var->lastName ; } ,$list); var_dump($lastNames);
产量
array 0 => string 'Smith' (length=5) 1 => string 'Doe' (length=3) 2 => string 'Stack' (length=5)
您可以循环遍历person对象数组,然后遍历person对象并从firstname属性创建数组 . 查看一个示例,它巧合地使用person类作为示例:
http://www.tuxradar.com/practicalphp/6/7/6
一个简单的循环将是最好的:
$persons = getPersons(); $firstnames = array(); foreach($persons as $person) { $firstnames[] = $person->getFirstName(); }
4 回答
你必须循环遍历对象数组 . 使用正常
foreach
或使用array_map .你可以用
array_map
产量
您可以循环遍历person对象数组,然后遍历person对象并从firstname属性创建数组 . 查看一个示例,它巧合地使用person类作为示例:
http://www.tuxradar.com/practicalphp/6/7/6
一个简单的循环将是最好的: