IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment je déclare une matrice en PHP?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Points : 59
    Points
    59
    Par défaut Comment je déclare une matrice en PHP?
    Bon jour!
    Je veux créer une matrice n*n (le n c'est un nbr donné par l'utilisateur), mais je sais pas comment faire!
    Si mon n=3 je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $M = array(array(1,0,0), array(0,1,0), array(0,0,1));
    Mais quand le n n'est pas connu comment je déclare ma matrice dans le programme?!
    Pouviez vous m'aidez ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,
    Tu pourrais utiliser une fonction recurente, et passer en argument la reference du tableau courant dans ta matrice.
    Z.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Points : 59
    Points
    59
    Par défaut
    Merci Zwiter!
    Mai j'ai pas bien compris votre reponse, comment sa j'utilise"une fonction recurente", je suis débutante en PHP. Vous pouvez m'aider plus?
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Un fonction recurente est une fonction qui s'appelle elle meme.
    Ceci entraine donc uen boucle sans fin. Il y a quand meme une condition pour que ces boucles s'arretent.

    L'exemple le plus démonstratif est une fonction récurante pour lister des répertoires.
    la fonction ferait :
    - lister les repertoires du répératoire en argument
    - pour chaque répertoire : relancer la fonction en prenant en argument ce répertoire.

    Ici, la condition de sortie est le 'pour chaque' : quand il n'y a plus de répertoire, la fonction s'arrete.

    Donc pour notre affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    //diemension de la matrice
    $n = 4;
     
    //1er appel de la fonction
    //$mat = matrice
    //$n = dimension
    //0 = niveau courant
    create_recur_mat($mat, $n, 0);
     
    function create_recur_mat(&$current_mat, $n, $current_n) {
    	if ($n == $current_n) { //condition de sortie dimension courante = $n
    		$current_mat = 1; //il ne faut pas oublier la valeur d'initialisation
    		return; //sortie
    		}
    	for ($i = 0; $i < $n; $i++) //pour chaque dimension
    		//descendre encore d'un cran
    		create_recur_mat($current_mat[$i], $n, $current_n + 1);
    	}
     
    print_r($mat);
    ?>
    Z.

  5. #5
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Je n'ai pas expliquer la référence.
    Mais je suis pas tres doué pour expliquer ca:
    http://php.net/manual/fr/language.references.php

  6. #6
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    En faisant comme ceci ?
    Ca crée une matrice n*n identité. avec n => $n
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $arr = array();
    for($i=0;$i<$n;$i++) {
        $arr[$i] = array();
        for($j=0;$j<$n;$j++) {
            if ( $i == $j )
            $arr[$i][$j] = 1;
            else
            $arr[$i][$j] = 0;
        }
    }
     
    ?>

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup pour le code!
    Je vais l'essaie
    Merci

  8. #8
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Points : 59
    Points
    59
    Par défaut
    Une petite question a francoi :
    le IF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( $i == $j )
            $arr[$i][$j] = 1;
            else
            $arr[$i][$j] = 0;
    c'est pour remplir la matrice ?

  9. #9
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Oui c'est pour faire une matrice identité, avec des 1 sur la diagonale, comme dans ton exemple.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup francois, j'ai exécuté votre code et sa marche tres bien.
    Mais ce que je veux maintenant: la matrice sera remplis a partir de l'utilisateur c'est a dire je doit créer cette matrice et la affiché et l'utilisateur la remplis et le programme récupéré les valeurs, je suis vraiment perdu

    J'ai essayé avec le bout de code de Zwiter que je tien a le remercié encore une fois mais j'ai eu une erreur.

    Voila le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <html>
    <Head>
         <title> Premiere page </title>
    </head>
    <body>
    <h1 align="center"><u> Les Graphes </u></h1>
    <br/>
    <br/>
    <?php 
        echo "<font color=\"#800080\">Aujourd'hui nous sommes le : </font>" .date('d/m/Y');
    	echo "<br><font color=\"#800080\"> Il est :</font> " .date('H \h i \m\i\n s \s\e\c ');
     
    ?>
    <center>
          <form method="post" action="Graphe.php">
    Entrez le nombre de Sommet :  <input type="text" name="som" />
    <br>
    	<input type="submit" name="ok" value="ok" />
    	</form>
    		</center>
    		<?php
     
          if(isset($_POST['ok']))
         {  $n=''; if(isset($_POST['som'])) { $n=($_POST['som'] ); }
     
     
    //diemension de la matrice
     
     $mat = array();
    //1er appel de la fonction
    //$mat = matrice
    //$n = dimension
    //0 = niveau courant
    create_recur_mat($mat, $n, 0);
     
    function create_recur_mat($current_mat, $n, $current_n) {
    	if ($n == $current_n) { //condition de sortie dimension courante = $n
    		$current_mat = 1; //il ne faut pas oublier la valeur d'initialisation
    		return; //sortie
    		}
    	for ($i = 0; $i < $n; $i++) //pour chaque dimension
    		//descendre encore d'un cran
    		create_recur_mat($current_mat[$i], $n, $current_n + 1);
    	}
     
    print_r($mat);
        }
    ?>
     
     
    </body>
    </html>
    Et voila l'erreur:
    Fatal error: Call to undefined function create_recur_mat() in D:\Foufa\EasyPHP 2.0b1\www\Graphe.php on line 34

    Je connais pas les fonctions c'est la première fois que je travaille avec, j'ai besoin de votre aide. Merci!

  11. #11
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Je m'etais emballé, et mon code ne correspond pas a une matrice.
    N'en tenez pas compte.
    Z.

Discussions similaires

  1. comment affecter a une matrice les elements d'un tableau
    Par rounder2000 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 24/01/2010, 09h01
  2. Réponses: 3
    Dernier message: 23/09/2009, 13h07
  3. [PHP] Comment se connecter à une base DB2 ?
    Par wapit dans le forum DB2
    Réponses: 9
    Dernier message: 26/02/2009, 17h26
  4. comment acceder a une base active directory par php???
    Par vincenttt dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 08/06/2007, 15h31
  5. Réponses: 15
    Dernier message: 26/06/2005, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo