Person オブジェクトの配列があり、その person オブジェクトにはプロパティ firstName、lastName、および age があるとします。ここで、これらすべての人物オブジェクトのファーストネームの配列が必要だとします。この Person オブジェクトの配列を firstname 文字列の配列に変換するにはどうすればよいですか?
それを行うために使用できる配列関数の組み合わせはありますか、それとも for ループを使用して新しい配列を作成するだけですか?
Person オブジェクトの配列があり、その person オブジェクトにはプロパティ firstName、lastName、および age があるとします。ここで、これらすべての人物オブジェクトのファーストネームの配列が必要だとします。この Person オブジェクトの配列を firstname 文字列の配列に変換するにはどうすればよいですか?
それを行うために使用できる配列関数の組み合わせはありますか、それとも for ループを使用して新しい配列を作成するだけですか?
使用できます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 クラスを例として使用している例を参照してください。
単純なループが最適です。
$persons = getPersons();
$firstnames = array();
foreach($persons as $person) {
$firstnames[] = $person->getFirstName();
}
オブジェクトの配列をループする必要があります。通常を使用するか、foreach
を使用しますarray_map
。
function get_first_name($person)
{
return $person->firstName;
}
$firstNames = array_map('get_first_name', $people);