[RESOLU] récupérer les valeur d'1 array key ou par index

Eléphanteau du PHP | 32 Messages

25 avr. 2013, 16:53

Bonjour

J'essaye de récupérer les valeurs d'un array par cle ou index

Code : Tout sélectionner

$user = array(); $user['a'] = 'firstname'; $user['b'] = 'lastname'; echo '<br />user = ' . $user[0]; echo '<br />user = ' . $user['a'];
Je ne recupere rien avec $user[0]

comment puis je avoir ces valeur pas leur index (sans for each ou loop) ?

merci

Mammouth du PHP | 737 Messages

25 avr. 2013, 17:00

Salut,

Jette un oeil à cela :
<?php 
$user = array();
$user[] = 'firstname';
var_dump($user);  
print '<pre>'; print_r ($user); print '</pre>';
echo '<h1>'.$user[0].'</h1>';
?>
Mega
;)
Dyslexics are teople poo

Eléphanteau du PHP | 32 Messages

25 avr. 2013, 17:03

merci mais là tu n'utilises pas $user['a'] = 'firstname';

il me faut la cle 'a' je veux pouvoir récupérer par cle et index comme en C#

Mammouth du PHP | 2278 Messages

25 avr. 2013, 17:53

Un coup d'oeil ici:
forum.phpfrance.com/posting.php?mode=reply&f=8&t=267865
serait utile en particulier:
La clé key peut être soit un integer, soit une chaîne de caractères. La valeur value peut être de n'importe quel type.

De plus, les modifications de type pour la clé key peuvent survenir :

Les chaînes de caractères contenant un entier valide seront modifiées en un type entier. I.e. la clé "8" sera actuellement stockée comme l'entier 8. D'un autre côté, "08" se sera pas modifié, sachant que ce n'est pas un entier décimal valide.
Les nombres à virgule flottante seront aussi modifiés en entier, ce qui signifie que la partie après la virgule sera tronquée. I.e. la clé 8.7 sera stockée sous l'entier 8.
Les booléens seront modifiés en entier également, i.e. la clé true sera stockée sous l'entier 1 et la clé false sous l'entier 0.
La valeur Null sera modifiée en une chaîne vide, i.e. la clé null sera stockée sous la chaîne de caractère "".
Les tableaux et les objets ne peuvent pas être utilisés comme clé. Si vous le tentez, l'alerte suivante sera émise : Illegal offset type.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 32 Messages

25 avr. 2013, 22:24

merci mais ce n'est pas ma question

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 avr. 2013, 22:28

cela répond à ta question La clé key peut être soit un integer, soit une chaîne de caractères.

une clef est unique et dans ce cas tu ne peux accéder qu'a $user['a'] de cette façon. $user[0] c'est un autre index.


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 32 Messages

25 avr. 2013, 22:55

non ce n'est pas ma question mais laisse tomber c'est pas grave

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 avr. 2013, 23:05

Je ne recupere rien avec $user[0]

comment puis je avoir ces valeur pas leur index (sans for each ou loop) ?

merci
la réponse à ta question c'est l'index et numérique OU alpha numérique....
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

26 avr. 2013, 08:09

@moogli:
on doit être tous les deux producteurs et consommateurs d'émeri....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 2577 Messages

26 avr. 2013, 09:05

Sans doute une confusion à cause de mysql qui retourne (par défaut) les 2 clés.

Eléphanteau du PHP | 32 Messages

26 avr. 2013, 12:29

$user = array();
$user['a'] = 'firstname';
$user['b'] = 'lastname';

pour avoir 'firstname'
je fais echo $user['a'];
mais je veux pouvoir faire echo $user[0]; qui est sa position 0 dans le array (que j'appelle index)

pour avoir ''lastname'
je fais echo $user['b'];
mais je veux pouvoir faire echo $user[1]; qui est sa position 1 dans le array

C'est possible dans d'autres langages de programmation mais apparemment pas en php

Eléphanteau du PHP | 32 Messages

26 avr. 2013, 12:36

j'ai trouve la solution

$user = array('a' => 'firstname', 'b' => 'lastname');
$indexes = array_keys($user);
echo $user[$indexes[0]];