Tester presence valaur dans tableau ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tester presence valaur dans tableau ?

par Ryle » 10 mai 2006, 17:26

Ah ben oui mais tu triches, tu changes en cours de route... s'il n'y a qu'une dimension ce que disais zeus était juste et le in_array devrait normalement très bien fonctionner... :)

Pour le coup, le foreach ne sert à rien, autant faire directement :
if( $_SESSION['devis']['ref']==$ref){echo 'toto';} 

//ou 
if ( in_array($ref,$_SESSION['devis']) ){echo 'toto';} 
// sachant que du coup il ira aussi regarder s'il trouve la valeur dans "designation"

par Invité » 10 mai 2006, 17:00

Je m'en suis sorti comme ça :
foreach( $_SESSION['devis'] as $v )
{
if($v['ref']==$ref){echo 'toto';}
}

par allphp13 » 10 mai 2006, 16:57

Mon tableau est concu de cette façon :
$_SESSION[$arr] = array('ref' => $ref,'designation' => $designation);  

[/php]

par zeus » 10 mai 2006, 16:50

put***, j'avais pas vu ... :?

C'est soit tu fait
$_SESSION[$arr]["ref"] = $ref;
$_SESSION[$arr]["designation"] = $designation;
soit tu fait
$_SESSION[$arr] = array('ref' => $ref,'designation' => $designation);
Mais pas les 2, sinon tu as une dimension en trop ;)

par Ryle » 10 mai 2006, 16:46

zeus >> ben vi, mais le sous tableau $_SESSION[$arr] est justement un tableau de tableau :
$_SESSION[arr][]=array(...)
d'où mon interrogation pour savoir si le in_array irait jusque là pour retourner un résultat ou s'il s'arrêterais au premier niveau ne contenant que des tableaux et retournant qu'il ne l'a pas trouvé...

par Invité » 10 mai 2006, 16:41

Pour la valeur qui m'intéresse :

array(5) { ["ref"]=> string(6) "2303-4"

par zeus » 10 mai 2006, 16:41

Est-ce que le contenu de $ref s'y trouve ?

par allphp13 » 10 mai 2006, 16:40

J'ai le contenu complet du tableau qui s'affiche

par zeus » 10 mai 2006, 16:39

en fait, comme il donne $_SESSION[$arr], il passe un sous-tableau de $_SESSION donc ca marche. J'utilise souvent cette manière de faire et je n'ai jamais eu de soucis :-k

par Ryle » 10 mai 2006, 16:38

Chuis po sur que ca marche.. y a une deuxième dimension incidieusement planquée dans son tableau...

A confirmer, mais je pense qu'il faut boucler et tester pour chaque sous tableau si celui-ci contient la valeur recherché, le premier ne contenant finalement que des Array()

cela dit chuis pas allé vérifié, le in_array fonctionne peut être de manière récursive, dans ce cas là, z'avez qu'à faire comme si j'avais rien dit :)

par zeus » 10 mai 2006, 16:38

Et si, avant le test, tu fait ça :
var_dump($_SESSION);
tu obtient quoi ?

par allphp13 » 10 mai 2006, 16:35

if(isset($_SESSION['arr']) && in_array($ref, $_SESSION['arr'])){echo 'valeur trouvee';}

par zeus » 10 mai 2006, 16:31

Fait voir comment tu fait ton test

Re: Tester presence valaur dans tableau ?

par zeus » 10 mai 2006, 16:28

Comment faire ?
in_array($ref,$_SESSION['ar'] )
Bingo ;)

Est-ce que tu as seulement essayé avant de poster ?

Tester presence valaur dans tableau ?

par AllPHP13 » 10 mai 2006, 16:26

Bonjour
J'ai un tableau en session :

$_SESSION[arr][]=array('ref' => $ref,'designation' => $designation)

J'aimerais tester la présence d'une variable $ref dans ce tableau

Comment faire ?
in_array($ref,$_SESSION['ar'] )
Grand merci