[php]tableau dynamqiue dans fonction

Fermé
newbiwankenobi - 17 déc. 2009 à 11:44
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 17 déc. 2009 à 16:24
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?
A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
17 déc. 2009 à 16:24
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