Exploitation array

Résolu/Fermé
petit240 Messages postés 5 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 23 décembre 2016 - 23 déc. 2016 à 20:59
petit240 Messages postés 5 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 23 décembre 2016 - 23 déc. 2016 à 22:55
Bonsoir,
Mon objectif est d'extraire les informations d'un array.
Cet array est $listcategorie , créer à partir de différentes classes POO.
Array (
[0] => category Object ( 
[id_cat:category:private] => 1
[libelle_cat:category:private] => Individuelle
[tarif_cat:category:private] => 10.000
)
[1] => category Object (
[id_cat:category:private] => 2
[libelle_cat:category:private] => Groupe
[tarif_cat:category:private] => 20.000 
)
)

Jai un champ de formulaire du type select, qui pour chaque option doit reprendre en valeur d'attribut l'id de la catégorie [id_cat:category:private] , et afficher [libelle_cat:category:private] pour les 2 options.
Je sais qu'il me faut un foreach() mais pour l'utiliser dans ce cas précis galère.

Merci d'avance

2 réponses

yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 Ambassadeur 1 551
23 déc. 2016 à 22:02
Ceci?
foreach ( $listcategorie as $cat )
{
    echo $cat->libelle_cat . "<br>" ;
}
1
petit240 Messages postés 5 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 23 décembre 2016
23 déc. 2016 à 22:31
Ca fonctionne, j'ai dû modifier libelle_cat par ma fonction getLibelleCat(), l'attribut est privé.
Je me pose une question : dans mon manager de class, pour chaque instance dans ma bdd, je crée un objet category avec l'ensemble des données, du coup au lieu de faire une liste, je peux directement chercher ma valeur dans mon objet non ?
class category {
	private $id_cat;
	private $libelle_cat;
	private $tarif_cat;
	
	public function __construct($donnees)
	{
		if (isset($donnees['id_cat']))
		{
		$this->setIdCat($donnees['id_cat']);
		}
		if (isset($donnees['libelle_cat']))
		{
		$this->setLibelleCat($donnees['libelle_cat']);
		}
		if (isset($donnees['tarif_cat']))
		{
		$this->setTarifCat($donnees['tarif_cat']);
		}
	}
	public function hydrate(array $donnees){
		$this->id_cat = $donnees['category'];
	}
	public function getIdCat()
	{
		return $this->id_cat;
	}
	public function getLibelleCat()
	{
		return $this->libelle_cat;
	}
	public function getTarifCat()
	{
		return $this->tarif_cat;
	}
	public function setIdCat($id)
	{
		$this->id_cat = $id;
	}
	public function setLibelleCat($lib)
	{
		$this->libelle_cat = $lib;
	}
	public function setTarifCat($tarif)
	{
		$this->tarif_cat = $tarif;
	}
} 


Merci beaucoup
0
petit240 Messages postés 5 Date d'inscription samedi 12 mars 2011 Statut Membre Dernière intervention 23 décembre 2016
23 déc. 2016 à 22:55
Après réflexion j'ai compris, la ligne de mon array est un objet, du coup j'applique la fonction à ma ligne que je change de nom dans les paramètres.
0