Bonjour,

A nouveau je vous sollicite. J'ai une fonction push() qui prends en paramètre un tableau et une valeur. La fonction push() ajoute la valeur au tableau et retourne un tableau de taille +1 par rapport au tableau passé en paramètre.

Je pensais initialement pouvoir faire ceci en passant le tableau par adresse et faire comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
function push (&$bInA, $i) {
	$idx= count($bInA)+1;
	$bInA[$idx] = $i;
//	return $bInA; 
}
Mais elle ne fonctionne pas bien. J'ai ensuite essayé de modifier cette fonction push en créant un nouveau tableau intermédiaire, copier toute les donné de l'ancien tableau (celui passé en paramètre) et ajouter la nouvelle valeur. De cette façon:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function push ($bInA, $x) {
	$tmpLst = array();
	$idx= count($bInA)+1;
 
	for($i=0; $i<count($bInA); $i++ ) {
		$tmpLst[$i]= $bInA[$i];
	}
	$tmpLst[$idx]= $x;
 
	return $tmpLst; 
}
Or, elle ne fonctionne pas. Je l'appelle comme ceci dans un fichier PHP que j'ai nommé 'test.php'

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
 
<?php
 
require_once('../lib/lib_mediateque.php'); // cette bibliothèque contiens la fonction push()
 
$lst = array();
 
$lst[0]=1;
$lst[1]=12;
$lst[2]=112;
$lst[3]=134;
$lst[4]=1223;
 
 
$lst = push($lst, 1000);
 
// J'affiche toute les valeurs du tableau
	echo "<br>";
	for($i=0; $i<count($lst); $i++ ) {
		echo "$i   ";
		echo "$lst[$i]";
		echo "<br>";
	}
?>
Or, a l'affichage du tableau, j'ai un erreur du type:"Notice: Undefined offset: 5 ".

Une soluce ?

J.