Retourner la position d'une clé d'un tableau associatif

mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 23 avril 2006 à 19:11
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 24 avril 2006 à 12:46
Bonjour

Question certainement conne s'il en est mais j'ai dû louper une fonction de base : comment trouver la position d'une clé dans un tableau associatif ? Y a-t-il une fonction de base pour cela ou dois-je la coder moi-même ?

Exemple en nommant cette fonction bingo() :
$tableau array ('clé'> 'valeur', 'nouvelle clé' => 'nouvelle valeur' );

bingo('nouvelle clé') = 1;

De même avec les valeurs et non plus les clés.

Merci beaucoup.
Nemetral.

3 réponses

mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008
23 avril 2006 à 19:24
Trouvé (mais s'il existe une fonction de base je suis toujours preneur !) :

function catchKey($array,$target) {

$i=0;

$pos = "";

foreach ($array as $key => $value) {

if ($target==$key) $pos = $i;

$i++;

}

return $pos;

}

Pour les valeurs, je retire cette question car plusieurs cellules du tableau peuvent avoir la même valeur !
[ NemetraL ]
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 avril 2006 à 07:40
Hello,

ta question n'a pas de sens.

Si je fais un tableau indexé numériquement de ce genre :$tab array (5> 'test', 9 -> 'bla');

le 9 est à la 1ère position...? Ok...alors si ensuite je fais ceci sur ce même tableau :
$tab[7] = 'ah...";
Que devient ta clef 9 ?

et puis, si j'ordonne mon tableau ? Que devient la "position" de tes clefs...?
0
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008
24 avril 2006 à 12:46
Slt

Je parlais d'un tableau associatif avec clés autres que numériques.

Le fond du problème était le suivant : je me construis un tableau associatif que je remplis de données en provenance de la bdd, et ensuite je le manipule notamment en supprimant quelques cellules. Pour cela, il me faut les identifier. J'ai donc voulu passer par array_splice mais il faisait n'importe quoi aux extrêmes (première et dernière cellule). Donc j'ai fait des boucles pour traiter à part les cas extrêmes. Mais comment savoir si la cellule recherchée est ou non à l'extrême sachant que je ne connais que la valeur de la clé ?

De là l'idée de faire cette fonction.

Le problème s'est résolu autrement : unset($array[$key]). Plus simple non ?

Je me disais bien qu'une fonction de base était en mesure de gérer ça...

[ NemetraL ]
0