une fonction me retourne un tableau :
function getArray()
{
return array('a', 'b', 'c');
}
$array = getArray();
Je voudrais, en une ligne, invoquer la fonction getArray(), récupérer un seul élément de ce tableau, et le stocker dans une variable.
Par exemple :
$a = ************* ;
Que mettre à la place des étoiles, pour que $a contienne la valeur 'a' ?
En utilisant la fonction getArray() bien entendu.
Merci d'avance !
# Instinctivement
Posté par Guillaume Rossignol . Évalué à 2.
$a = getArray()[2];
mais ca ne marche pas, donc tu crée une fonction getElem qui prend un tableau et renvoie un element :
function getElem($array){
return $array[2];
}
$a = getElem(getArray());
[^] # Re: Instinctivement
Posté par santos . Évalué à 2.
J'ose espérer que langage prévoit quelque chose pour faire ce genre d'opération... (plutôt dans le style de $a = getArray()[2] ).
Il me semble avoir déjà vu ça, à l'aide d'accolades, mais je ne le retrouve pas.
# Ternaire
Posté par Uld (site web personnel) . Évalué à 2.
[^] # Re: Ternaire
Posté par Uld (site web personnel) . Évalué à 2.
function getArray() {
return array('a', 'b', 'c');
}
$a = ($temp=getArray()) ? $a=$temp[2] : $a=false;
echo $a.'\n';
Ca renvoi bien la lettre "c"
[^] # Re: Ternaire
Posté par fcartegnie . Évalué à 3.
# C'est justement ce genre de truc qui me gave dans PHP ...
Posté par totof2000 . Évalué à 3.
J'ai du mal à comprendre comment ça fai pour survivre une horreur pareille ....
[^] # Re: C'est justement ce genre de truc qui me gave dans PHP ...
Posté par totof2000 . Évalué à 2.
En ruby ça donne :
def getarray
["a","b","c"]
end
puts getarray[1]
Le résultat :
>ruby test2.rb
b
[^] # trollons-nous dans les bois...
Posté par Octabrain . Évalué à 3.
(et hail to python chez qui mentionner "getarray" est comme on pourrait s'y attendre bien un pointeur vers la fonction)
[^] # Re: trollons-nous dans les bois...
Posté par totof2000 . Évalué à 1.
Pourquoi les () explicites ? Ca sert à quoi ?
J'ai écrit un exemple, dans la vie de tous les jours, je ne ferai pas appel à une foncion juste pour atteindre un élément du tableau .... La c'est pour l'exemple. On peut supposer que le tableau est rempli par d'autres traitements ...
Ecris un exemple si tu veux troller.
[^] # Re: trollons-nous dans les bois...
Posté par Octabrain . Évalué à 2.
Je ne sais même pas comment on fait référence à une fonction en ruby mais il doit certainement falloir une syntaxe spéciale, alors qu'en python, si tu parles de la fonction "x", ben t'écris "x", et si tu parles du résultat de "x", ben t'appelles "x", donc comme ça : "x()"
[^] # Re: trollons-nous dans les bois...
Posté par totof2000 . Évalué à 1.
def getarray
["a","b","c"]
end
x=method(:getarray)
puts x.call[1]
C'est un peu déroutant quand on n'est pas habitué mais ça peut se révéler très pratique dans certains cas ....
A mon avis l'une ou l'autre des approches n'est pas plus problématique que l'autre. Il y a seulement des cas ou l'une se révelera plus pratique et l'autre moins ... et vice versa ..
.. Au pasage merci pour ce troll, j'ai du chercher un peu pour répondre à ta question ...
[^] # Re: trollons-nous dans les bois...
Posté par Tonton Benoit . Évalué à 2.
irb(main):002:0> def my_array
irb(main):003:1> return ["A","B","C","D"]
irb(main):004:1> end
=> nil
irb(main):005:0> my_array[1]
=> "B"
irb(main):006:0> my_array()[1]
=> "B"
irb(main):007:0>
Certains détestent la liberté syntaxique de Perl ou de Ruby, moi ça ne me gêne pas trop, suffit d'être constant dans sa façon d'écrire le code.
Et oui je fais toujours suivre mes appels de fonctions d'un ().
[^] # Re: trollons-nous dans les bois...
Posté par Octabrain . Évalué à 2.
[^] # Re: trollons-nous dans les bois...
Posté par lasher . Évalué à 3.
Je code de façon consistante en C et Perl, je suis en train d'apprendre Ruby (après un bref essai pour Python). Ce que j'aime en Perl & Ruby, c'est la possibilité d'utiliser l'implicite quand ça permet de simplifier la lecture. Mais ça n'empêche pas de devoir se discipliner. En C il est tout à fait possible d'écrire des horreurs aussi, et pourtant tout appel de fonction doit bien être suivi de parenthèses ...
[^] # Re: trollons-nous dans les bois...
Posté par totof2000 . Évalué à 1.
Je ne me lancerai pas dans des explications longues sur ce sujet car d'une part je ne maitrise pas suffisamment Ruby pour m'avancer sans dire de conneries, et d'autre part je pense que ça resera inaccessible à un esprit formaté par l'étroitesse du Python ... :).
# array_shift
Posté par SQP . Évalué à 2.
array_shift() extrait la première valeur d'un tableau et la retourne, en raccourcissant le tableau d'un élément, et en déplaçant tous les éléments vers le bas. Toutes les clés numériques seront modifiées pour commencer à zéro.
$a = array_shift(GetArray());
[^] # Re: array_shift
Posté par santos . Évalué à 2.
# Trivial
Posté par Jean B . Évalué à 4.
$a = array_search(0, array_flip(getArray()));
--> []
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.