[PHP] Aide sur fonction

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 : [PHP] Aide sur fonction

Re: [PHP] Aide sur fonction

par loboblahz » 21 juil. 2010, 12:57

present dans 1 et 2 => x
present dans 1 et absent dans 2 => y z
present dans 2 et absent dans 1 => a b c
Alors voilà
Pour obtenir les valeurs présentes dans 1 et pas dans 2 :
$tableau = array_diff($tableau1,$tableau2);
Pour obtenir les valeurs présentes dans 2 et pas dans 1 :
$tableau = array_diff($tableau2,$tableau1);
Pour obtenir uniquement les valeurs présentes dans les deux :
$tableau = array_intersect($tableau1,$tableau2);
ça devrait faire ton bonheur.

Re: [PHP] Aide sur fonction

par georges_paradeque » 21 juil. 2010, 12:49

Bah parce que je ne connais pas, 'suis débutant hein ! :D

L'inversion n'est pas bonne.

exemple :

1 = x y z
2 = a b c x

present dans 1 et 2 => x
present dans 1 et absent dans 2 => y z
present dans 2 et absent dans 1 => a b c

Re: [PHP] Aide sur fonction

par loboblahz » 21 juil. 2010, 12:42

Pourquoi ne pas utiliser array_diff ?

Et si tu veux l'inverse, tu n'as qu'à interverti les tableaux au niveau des paramètres.

La documentation de array_diff ici : http://ch2.php.net/manual/fr/function.array-diff.php

[PHP] Aide sur fonction

par georges_paradeque » 21 juil. 2010, 12:33

Bonjour,

J'ai besoin d'un coup de pouce sur l'utilisation d'une fonction.

voici mon code :
function compare($tableau1, $tableau2, $active='1'){
	foreach ($tableau1 as $valeur) {
		if ( (in_array($valeur, $tableau2)) ){ // afficher donnees presente dans 1 mais absente de 2
//		if ( (!in_array($valeur, $tableau2)) ){ // afficher donnees absente de 1 mais presente dans 2
		}
		$anomalie[] = $valeur; 
	}
}
Je veux un truc du genre
function compare($tableau1, $tableau2, $active='0'){
	if($active='0'){ $in_out = 'in_array' } else { $in_out = '!in_array' }
	if (isset($tableau2)) {
		foreach ($tableau1 as $valeur) {
		if ( ($in_out($valeur, $tableau2)) ){
			$anomalie[] = $valeur; 
		} else
		{
			$anomalie[] = $tableau1;
		} 
		}
	}
}
Les valeurs possibles d'appel de la fonction :

compare($tableau1)

compare($tableau1, $tableau2) // implicite $active='0'

compare($tableau1, $tableau2, '1')

Merci à tous !!