Matrice PHP

Madani
Invité n'ayant pas de compte PHPfrance

10 avr. 2008, 16:44

Bonjour tout le monde.
Je suis un débutant en php et j'ai besoin de créer une matrice.
En fait je voudrait aligner deux séquences d'ADN avec des scores attribué par l'utilisateur.
La première ligne et la première colonne devrait donner ça avec un score de -4:
0->-4->-8->-12->-16.....
-4
-8
-12
-16
.
.
.

Puis le but serait de faire une double boucle pour remplir les vides en fonction d'autres scores entrés par l'utilisateur.
Je vous remercie par avance.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 avr. 2008, 17:02

Une matrice se traduit en PHP par un tableau multi-dimensionnel.
http://fr2.php.net/manual/fr/language.types.array.php

Il existe environ 75 fonctions nativves (sort, shift, etc.) pour manipuler les tableaux. (voir la table des matières en bas de la page)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Madani
Invité n'ayant pas de compte PHPfrance

10 avr. 2008, 17:10

Merci pour ta réponse.
Le truc c qu'on m'a pas apprit comme ça du coup je suis un peut perdu.
si j'envois un morceaux du code tu crois que tu pourrait m'aider ??

ViPHP
AB
ViPHP | 5818 Messages

11 avr. 2008, 01:28

Merci pour ta réponse.
Le truc c qu'on m'a pas apprit comme ça du coup je suis un peut perdu.
si j'envois un morceaux du code tu crois que tu pourrait m'aider ??
A mon avis y'a que quand on verra ton morceau de code qu'on pourra le dire :wink:

Madani
Invité n'ayant pas de compte PHPfrance

14 avr. 2008, 09:17

LOL
Alors voila
en tout cas merci
$matrice=array();
	
	For($l=0;$l<sizeof($seq1);$l++)
	{
		$matrice[]=array($l+$ssub);
		$matrice[$l][$c=0]=array();
	}
	For($c=0;$c=sizeof($seq2);$c++)
	{
		$matrice[]=array($c+$ssub);
		$matrice[$l=0][$c]=array();
	}
	
		echo $matrice[$l][$c];

Madani
Invité n'ayant pas de compte PHPfrance

14 avr. 2008, 10:06

Je vais plutot mettre tout ce que j'ai fait ce sera plus simple pour vous bien que ce ne soit pas fini car je suis bloqué.
$sid=score identité
$ssub= score de substitution
$pind= pénalité de gap
<?
$seq1 = $_POST['sequence1'];
$seq2 = $_POST['sequence2'];
$sid = $_POST['Sid'];
$ssub = $_POST['Ssub'];
$pind = $_POST['Pind'];

if (strcmp($seq1,$seq2) ==0)
{
	echo'Les deux séquences sont identiques, veulliez verifier vos entrées';
}

else if(preg_match('([A,T,G,C])', $seq1) and preg_match('[A,T,G,C])',$seq2))
{
/*initialisation matrice*/
	$matrice=array();
	
	For($l=0;$l<sizeof($seq1);$l++)
	{
		$matrice[]=array();
		$matrice[$l][$c=0]=array($l+$ssub);
	}
	For($c=0;$c<sizeof($seq2);$c++)
	{
		$matrice[]=array();
		$matrice[$l=0][$c]=array($c+$ssub);
	}
	

//double boucle//
	for($l=0;$l<sizeof($seq1);$l++)
	{
		for($c=0;$c<sizeof($seq2);$c++)
		{
			if(strcmp(substr($seq1,$l,1),substr($seq2,$c,1)) ==0)
			{
				$matrice[$l][$c]=$sid;
			}
			else
			{
				$matrice[$l][$c]=$ssub;
			}
		
		}
	}
} 
else 
{ 
	echo'Seuls les caractères A,T,G et C sont acceptés'; 
}


?>