Maison  >  Article  >  développement back-end  >  Comment extraire une colonne de propriétés d’un tableau d’objets en PHP ?

Comment extraire une colonne de propriétés d’un tableau d’objets en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 09:02:30483parcourir

How to Extract a Column of Properties from an Array of Objects in PHP?

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() à la rescousse

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 :

<code class="php">$idCats = array_column($cats, 'id');</code>

Dans cet exemple, la variable $idCats contiendra désormais un tableau des ID 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() :

<code class="php">$idCats = array_map(function($cat) { return $cat->id; }, $cats);</code>

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 d'objets en PHP, vous permettant de rationaliser votre code et d'améliorer les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn