PHP : extraire efficacement une colonne de propriétés d'un tableau d'objets
De nombreux scénarios de programmation impliquent de travailler avec des tableaux d'objets, où chaque objet peut avoir plusieurs propriétés. Parfois, il devient nécessaire d’extraire une propriété spécifique de chaque objet pour former un tableau distinct. En PHP, atteindre cet objectif en une seule ligne, sans recourir à des boucles ou à des fonctions externes, peut être délicat.
Une approche potentielle consiste à utiliser la fonction array_walk() avec create_function. Cependant, une solution plus simple et élégante est disponible dans PHP 7.0 et versions ultérieures.
array_column() à Rescue
La fonction array_column() a été introduite dans PHP 7.0. et vous permet d'extraire une colonne de données spécifique d'un tableau de tableaux ou de tableaux d'objets. Passez simplement votre tableau d'objets en premier paramètre et le nom de la propriété souhaitée en deuxième paramètre :
$idCats = array_column($cats, 'id');
Dans cet exemple, la variable $idCats contiendra désormais un tableau des identifiants de tous les objets cats.
Remarque pour les versions PHP antérieures à 7.0
Si vous utilisez une version PHP antérieure à 7.0, vous pouvez toujours utiliser la fonction array_map() :
$idCats = array_map(function($cat) { return $cat->id; }, $cats);
Bien que cette méthode soit légèrement plus détaillée, elle obtient le même résultat.
En tirant parti de array_column() ou array_map(), vous pouvez extraire efficacement une colonne de propriétés d'un tableau de objets en PHP, vous permettant de rationaliser votre code et d'améliorer les performances.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3