[php]tableau dynamqiue dans fonction

newbiwankenobi -  
Alain_42 Messages postés 5413 Statut Membre -
Salut,
j'ai un soucis avec mon code pour insérer dans mes tableaux a 2 dimensions::
<?php
$table_stats = array(array());

function set_table($index1, $index2, $valeur){

$table_stats[$index1][$index2]=$valeur+";";
}
//<---------------------

echo"
<html><head></head><body>
";

$table_stats[0][1]="REPORT DE 2008";

set_table(3,3, "hohohhahah");
echo "---:<br/>";

print_r("::::<br/>");
print_r($table_stats);
?>
voilà rien n'est inséré par la fonction et c'est pas un problème de portée de la var il me semble(j'ai testé sans paramètres dans la fonction ca marche).
Une solution?

1 réponse

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Voir commentaires:
    <?php
    //$table_stats = array(array()); //???
    //$table_stats[$index1]=array([$index2]=$valeur+";";
    			//je ne vois pas pourquoi tu mets $valeur+";" c'est inutile
    		//la concatenation en php c'est par le point
    		//dans ta fonction il manquait le retour 
    		//dans ta fonction tu utilises une variable $table_stats il faut lui la passer en argument
    		//je t'ai fait cette solution, une autre solution aurait ete de mettre global $table_stats au début de la fonction, mais chacun son choix
    $table_stats=array();
    function set_table($index1, $index2, $valeur,$array){
    	if(!isset($array[$index1][$index2])){
    		//si cet index pour cet array n'existe pas on le cree et on y cahrge la valeur
    		$array[$index1]=array($index2=>$valeur);		
    	}else{
    		//si existe déja on écrase par la nouvelle valeur
    		$array[$index1][$index2]=$valeur;
    	}
    return $array;
    }
    //<---------------------
    
    echo"
    <html><head></head><body>
    ";
    
    $table_stats[0][1]="REPORT DE 2008";
    
    $table_stats = set_table(3,3, "hohohhahah",$table_stats);
    echo "---:<br/>";
    
    //print_r("::::<br/>"); print_r c'est pour un array seulement
    //et pour avoir une mise en forme de l'affichage:
    echo '<pre>';
    print_r($table_stats);
    echo '</pre>';
    ?> 
    0