Page 1 sur 1

question sur boucle tableau

Posté : 26 nov. 2007, 01:14
par choubix
hello,

j'ai un script de recommandation. un utilisateur recommande le site a ses amis, ca envoit un email a ces personnes.

ca marche bien.

- Si l'adresse email (ou les adresses) est deja dans la base de donnees, elle n'est pas reinseree
- MAIS un email part quand meme...

donc je souhaiterais savoir si on peut faire un foreach sur 2 tableaux?

j'ai ce code la:

$email = array($email1, $email2, $email3, $email4, $email5);

foreach($email as $key=>$value) {
if(!empty($value)) {
	$swift->send($message, "$value", "[email protected]");
	}
}
et je voulais faire qq chsoe du style: (les valeurs de sendmails sont soit 1 soit rien)
$email = array($email1, $email2, $email3, $email4, $email5);
$sendmail = array($sendmail1, $sendmail2, $sendmail3, $sendmail4, $sendmail5);

foreach($email as $key=>$value && $sendmail as %key=>$value2) {
if(!empty($value) && $value2 = 1) {
	$swift->send($message, "$value", "[email protected]");
	}
}

est ce uqe je susi pas en train de reinventer la programmation en php la??
(vu que je n'ai rien vu de semblable dans la doc...)

merci

Posté : 26 nov. 2007, 02:05
par choubix
bon, j'ai vu qu'il ne'st pas possible de faire ce que je voulais faire donc je passe au plan B: tableau a 2 dimension.

j'ai ce code mais ca ne marche pas:

		$array = array( array("$email1", "$sendmail1"),
					array("$email2", "$sendmail2"),
					array("$email3", "$sendmail3"),
					array("$email4", "$sendmail4"),
					array("$email5", "$sendmail5")
					);
							
		//while(list($key,$value) = each($email)
		foreach($array as $key=>$value) 
			{
			foreach($value as $subkey=>$subvalue) 
				{
				if(isset($subvalue)) 
					{
					$swift->send($message, "$value", "[email protected]");
					}
				}
			}

ce que je comprends:
- $value c'est l'email
- $subvalue c'est la valeur de sendmail
- si sendmail n'est pas nul: on envoi un email a l'adresse stockee dans value

et cela tant que le tableau a des valeurs a parcourir.

qq un pourrait m'indiquer ou ca cloche svp?

merci :)

Posté : 26 nov. 2007, 04:00
par choubix
bon,

j'ai essayer d'inverser la syntaxe de mon tableau de la sorte. ca ne marche pas mieux.
le probleme me semble venir du fait que je souhaite "sauter" les "$values" qui sont vide.
		$array = array( array("$sendmail1", "$email1"),
						array("$sendmail2", "$email2"),
						array("$sendmail3", "$email3"),
						array("$sendmail4", "$email4"),
						array("$sendmail5", "$email5")
						);
							
		//while(list($key,$value) = each($email)
		foreach($array as $key=>$value) 
			{
			foreach(!empty($value) as $subkey=>$subvalue)
				{
				$swift->send($message, "$subvalue", "[email protected]");
				}
			}

Posté : 26 nov. 2007, 06:28
par choubix
bon, par iteration, en lisant des articles et en me prenant u ncafe j'ai trouve la solution!
$array = array( 
						array("$sendmail1", "$email1"),
                        array("$sendmail2", "$email2"),
                        array("$sendmail3", "$email3"),
                        array("$sendmail4", "$email4"),
                        array("$sendmail5", "$email5")
                        );  
	     foreach($array as $key=>$value)
            {
				if(!empty($value[0]))
				{
				$swift->send($message, "$value[1]", "[email protected]"); 
				print_r($value[1]);
				}
			}