Page 1 sur 1

Accès à une donnée d'un Array multidimensionnel

Posté : 17 mai 2011, 12:28
par Babali
Bonjour,

Voici mon problème existentialiste du jour.

J'ai un tableau multidimensionnel
$tableau= array( array("TOTO", "VAR", 15),
               array("TITI", "NUM", 25),
               array("TUTU", "VAR", 35) 
             ); 
Les lignes et colonnes du tableaux sont alimentée directement avec une boucle sur une requête SQL.

Je souhaiterais pouvoir afficher la 3ième colonne d'une ligne dont je connais la valeur présente dans la première colonne du tableau
Exemple : Je voudrais afficher la 3ième colonne de "TITI" (le tableau étant alimenté dynamiquement, je ne connais pas par avance la position de la ligne "TITI" dans le tableau.

Est ce que ce type de code fonctionnerait, ou existe t'il quelque chose de plus simple ?
echo $tableau[(array_search('TITI', $tableau) )][2] ;

Re: Accès à une donnée d'un Array multidimensionnel

Posté : 17 mai 2011, 13:28
par xTG
Je pense que tu as du en tester te rendre compte que ça ne fonctionnait pas. ^^

Voilà une solution pour une structure fixe :
<?php
$tableau= array( array("TOTO", "VAR", 15),
               array("TITI", "NUM", 25),
               array("TUTU", "VAR", 35)
             ); 
$recherche = "TITI";
function recherche($recherche, &$tableau)
{
	foreach($tableau as $key => $val)
	{
		if( isSet($val[0]) && $val[0] == $recherche )
			return $key;
	}
	return null;
}

$index = recherche($recherche,$tableau);
if( $index != null && isSet($tableau[$index][2]) )
	echo $tableau[$index][2];

Re: Accès à une donnée d'un Array multidimensionnel

Posté : 17 mai 2011, 14:43
par Babali
Merci je vais tester ta fonction

Re: Accès à une donnée d'un Array multidimensionnel

Posté : 17 mai 2011, 18:47
par Ryle
N'as-tu pas moyen de coller un index à chaque ligne quand tu construis le tableau ?
$tableau= array( 
  "TOTO" => array("TOTO", "VAR", 15),
  "TITI" => array("TITI", "NUM", 25),
  "TUTU" => array("TUTU", "VAR", 35) 
); 
Tu pourrais ainsi facilement retrouver ta valeur :
echo $tableau["TUTU"][2]; // affiche 35

Re: Accès à une donnée d'un Array multidimensionnel

Posté : 17 mai 2011, 20:08
par Babali
Si c'est faisable et je m'en vais tester cela tout de suite.
Merci