首页 文章

如何在php中将对象数组转换为该对象的单个属性的数组?

提问于
浏览
1

假设我有一个Person对象数组,person对象具有属性firstName,lastName和age . 现在假设我想要一个所有这些人物对象的第一个名字的数组 . 如何将此Person对象数组转换为firstname字符串数组?

是否有一些我可以使用的数组函数组合,或者我只是使用for循环并创建一个新数组?

4 回答

  • 0

    你必须循环遍历对象数组 . 使用正常 foreach 或使用array_map .

    function get_first_name($person)
    {
        return $person->firstName;
    }
    $firstNames = array_map('get_first_name', $people);
    
  • 4

    你可以用 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)
    
  • 0

    您可以循环遍历person对象数组,然后遍历person对象并从firstname属性创建数组 . 查看一个示例,它巧合地使用person类作为示例:

    http://www.tuxradar.com/practicalphp/6/7/6

  • 0

    一个简单的循环将是最好的:

    $persons = getPersons();
    
    $firstnames = array();
    
    foreach($persons as $person) {
        $firstnames[] = $person->getFirstName();    
    }
    

相关问题