array avec une condition

array avec une condition - PHP - Programmation

Marsh Posté le 16-06-2010 à 19:57:29    

Salut

 

ya quelque chose qui je pense peut être fait simplement que je n'arrive pas à faire, je vous montre ce que j'essaie de faire avant de vous montrer ce que j'ai essayé et qui ne marche pas:

 

En fait je me retrouve avec un array, dans lequel certains éléments devraient apparaître sous certaines condition:

 
Code :
  1. $informations['plats_'.$utilisateur_plats]['infos'][] = array('viande'=>$viande, 'legumes'=>$legumes, 'patates'=>$patates, 'carottes'=>$carottes, 'machins'=>$machins);
 

Le truc c'est que je voudrais que patates et carottes n'apparaissent dans l'array qu'a une condition, que par exemple pour 'patate' $patate existe.

 

Genre:   if (!empty($patate)) { ajouter 'patate'=>$patate dans l'array }

 

J'ai pensé au push_array, mais ej dois mal l'utiliser parce que ça ne marche pas:

 
Code :
  1. if (!empty($patate)) {
  2. array_push($informations['plats_'.$utilisateur_plats]['infos'][], 'patate'=>$patate)
  3. }
 


Message édité par caribouuu le 16-06-2010 à 20:03:20
Reply

Marsh Posté le 16-06-2010 à 19:57:29   

Reply

Marsh Posté le 17-06-2010 à 09:00:29    

if (isset($patate))


---------------
http://www.ypikay.com
Reply

Marsh Posté le 17-06-2010 à 09:32:33    

Et il sort d'où ton $patate ? Pourquoi tu as besoin de tester son existence à ce stade ?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 17-06-2010 à 10:22:42    

Ben en fait j'ai mis des noms d'aliments mais ça pourrait être autre chose.
 
En gros je travaille sur du code qui n'a pas été écrit par moi, et c'est sur cakephp dans un controller.
 
L'array là c'est une liste de services qui doivent s'afficher, c'est récupéré avant dans un fichier xml et mis dans des variables, ya certaines variables qui sont présentes systématiquement et d'autres qui peuvent être absente, pour celles ci il faut qu'elles apparaissent dans la liste seulement si elles existent...
 
Donc en gros je voudrais "si (et seulement si) $bidule existe, l'inclure dans l'array". Je sais comment dire "si bidule existe", mais c'est pour l'inclure dans un array, on peut mettre un if dans un array !?

Reply

Marsh Posté le 17-06-2010 à 10:25:24    

Code :
  1. if(isset($patate))
  2.    $array['patate'] = $patate;


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 17-06-2010 à 10:40:33    

Merci, je peux mettre ça a l'interieur de l'array? Je vais tester :jap:

Reply

Marsh Posté le 17-06-2010 à 10:43:07    

Comment ça "à l'intérieur de l'array" ?
 
Tu testes juste si la var existe, et si oui tu ajoute sa valeur au tableau...


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 17-06-2010 à 10:48:09    

Je suis pas sûr d'avoir compris, je voudrais que si la var existe, elle soit dans ce tableau:
 
$informations['plats_'.$utilisateur_plats]['infos'][]=array(  ici )
 
Effectivement ça marche pas de mettre un if directement dans l'array

Reply

Marsh Posté le 17-06-2010 à 10:49:35    

Ben ...

Code :
  1. if(isset($patate))
  2.    $informations['plats_'.$utilisateur_plats]['infos']['patate'] = $patate;
 

:o

 

Edit : Je pense que tu devrais quand même revoir les bases :D


Message édité par Dj YeLL le 17-06-2010 à 10:50:10

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 17-06-2010 à 10:51:09    

j'ai compris, en faisant  $array['patate'] = $patate; ça l'ajoute directement au dernier array que j'ai créé?
 
J'ai testé et ça marche. Je pensais avoir compris les array je maîtrise pas tout :sweat:
 
Merci !


---------------
Bla (blaa bbla)
Reply

Marsh Posté le 17-06-2010 à 10:51:09   

Reply

Marsh Posté le 18-06-2010 à 12:17:29    

Bon en fait c'était pas ça, ça me mettait un array dans l'array, un deuxième niveau en quelque sorte, la fonction adaptée était "merge array" , dans le cas où ça pourrait servir à quelqu'un.  
 
Merci quand même j'aurais appris un truc :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed