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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    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 émérite
    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
    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 éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    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 émérite
    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
    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 émérite
    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
    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 chevronné 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
    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 éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Par défaut
    Merci beaucoup pour le code!
    Je vais l'essaie
    Merci

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    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 ?

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, 10h01
  2. Réponses: 3
    Dernier message: 23/09/2009, 14h07
  3. [PHP] Comment se connecter à une base DB2 ?
    Par wapit dans le forum DB2
    Réponses: 9
    Dernier message: 26/02/2009, 18h26
  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, 16h31
  5. Réponses: 15
    Dernier message: 26/06/2005, 16h53

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