comparer les valeurs de deux tableau (enfin presque)

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 : comparer les valeurs de deux tableau (enfin presque)

par Davee » 04 mai 2007, 16:02

Cool, c'est vraiment bien. ça marche.
bon je vais voir si ça peu coller avec toutes les situations possibles. que j'ai pas pu décrire, pour ne pas compliquer.

En tous cas, Je te remercie jpaul. :)

David.
Zut oublié de me connecté :lol:
C'est cool ça marche. incrémenter l'index c'est super utile. Je l'utilisais pas beaucoup avant.

David.

par Invité » 04 mai 2007, 13:06

Cool, c'est vraiment bien. ça marche.
bon je vais voir si ça peu coller avec toutes les situations possibles. que j'ai pas pu décrire, pour ne pas compliquer.

En tous cas, Je te remercie jpaul. :)

David.

par jpaul » 03 mai 2007, 23:15

Salut,
Si comme dans ton exemple on arrive a extraire aussi le numero du deuxième tableau (delimite par _) alors que penses tu de la solution suivante ?
<?php
function send_header() {
echo "<HTML>";
echo "<HEAD>";
echo "<TITLE>";
echo "Test sol compare tableaux";
echo "</TITLE>";
echo "</HEAD>";
echo "<BODY>";
}
function send_footer() {
echo "</BODY>";
echo "</HTML>";
}

send_header();

$dirtif = array ( 0 => "DSC6342.tif", 1 =>"DSC6343.tif" );
$dirjpg = array ( 0 => "DSC6342_alpha1.jpg", 1 => "DSC6342_alpha2.jpg", 2 => "DSC6343_alpha1.jpg", 3 => "DSC6343_alpha2.jpg", 4 => "DSC6344_alpha1.jpg", 5 => "DSC6345_alpha2.jpg", 6 => "DSC6346_alpha2.jpg" );

// On commence par memoriser toutes les valeurs à comparer dans un tableau indexé sur la clé à comparer
unset($compare);
foreach($dirtif as $key) {
	$img = (explode ('.',$key));
	$compare[$img[0]]=1;
}

// maintenant, on parcours l'autre tableau
foreach($dirjpg as $key) {
	echo "<br>".$key;
	// On suppose que le caractère _ permet de délimiter la chaine
	$img = (explode ('_',$key));
	echo "<br>".$img[0];
	// on vérifie si cette clé est présente dans le tableau $compare...
	if (isset($compare[$img[0]])) {
		echo "<br>match on value table tif $img[0] . jpg = $key<br>";
	}
	else {
		echo "<br>no match with $img[0] <br>";
	}
}

send_footer();
?>

comparer les valeurs de deux tableau (enfin presque)

par Davee » 03 mai 2007, 19:26

Bonjour,

je suis emmêlé dans mes tableaux.
J'ai un premier tableau avec des numéros.
un autre avec ces même numéros + une chaine.

Il faut que j'arrive à détecter si un numéro du premier tableau est présent dans les valeurs de l'autre tableau (sachant qu'il peut être présent dans plusieurs valeurs)

J'ai raisonner comme ça
je fait un boucle qui prend tour à tour les valeurs du premier tableau.
Dans cette boucle un autre boucle passe en revue toutes les valeurs du
deuxième tableau pour voir si par hasard ça lui dit quelques chose.
j'utilise pour ça la fonction preg_match.

mais voilà le code ce sera peut-être mieux.
$dirtif = array ( 0 => "DSC6342.tif", 1 =>"DSC6343.tif" );
$dirjpg = array ( 0 => "DSC6342_alpha1.jpg", 1 => "DSC6342_alpha2.jpg", 2 => "DSC6343_alpha1.jpg", 3 => "DSC6343_alpha2.jpg" );
$numdira=count ($dirtif);
$numdirb=count ($dirjpg);
$i=0;
$a=0;
//__________
while( $i<$numdira){
		$img= (explode ('.',$dirtif[$i]));
		$pattern=$img[0];
		while ($a<$numdirb) {
			$matchAlpha=preg_match( '/$pattern/', $dirjpg[$a],$p);
			$pp=number_format ($p);
			echo "$matchAlpha<br>";
			echo $pp."<br>";
			echo "$img[0]<br>";
			echo $dirtif[$i]."<br>";
			echo $dirjpg[$a]."<br>";
			if ($pp==1) {
				echo "match on value table tif $img[0] . jpg = $dirjpg[$a]<br>";
				}
			$a++;
			}
		$i++;
		}
Merci pour vos conseils.

David.