Page 1 sur 1

aide condition ecriture dans tableau

Posté : 16 févr. 2011, 19:08
par michael410
bonjour
attention gros zero en approche
je m'arrache les cheveux sur ce script,
son but est de stocker (pour chaque article consulté) , son ID et son url image afin de faire une liste de produits déjà consultés
tout marche bien sauf que : si je consulte deux fois le meme article il sera ecrit deux fois dans le tableau

je cherche à écrire une condition du genre:
si $resultat['ID'] est dans le tableau je ne l'ecrit pas, si elle n'y est pas je l'ecrit

du genre (mais qui ne marche pas !)
if (in_array(array($resultat['ID']), $ProdVu)) {
}else{
array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$Image]));
}


<code type="php"> if (isset($_SESSION['ProdVu'])) {
$ProdVu = ($_SESSION['ProdVu']); }
else {
$ProdVu = array(array());
}
// ici bug manque test si article deja present
array_unshift($ProdVu, array("ID" => $resultat['ID'], "IMG" => $resultat[$image]));

if (sizeof($ProdVu) > 8) {
array(array_pop($ProdVu)); }


$_SESSION['ProdVu'] = $ProdVu;
$NbProdVu = sizeof($ProdVu);</code>

pour info un print_r du tableau me donne :
Array ( [0] => Array ( [ID] => 8675 [IMG] => 8675.jpg ) [1] => Array ( [ID] => 14564 [IMG] => 14564.jpg ) [2] => Array ( [ID] => 14564 [IMG] => 14564.jpg ) [3] => Array ( ) )

comment faire un test avant l'ecriture dans le tableau ?
j m'arrache la tete la dessus depuis 14h!

Re: aide condition ecriture dans tableau

Posté : 16 févr. 2011, 21:06
par AB
Cela serait plus facile si tu générait un tableau avec les ID comme index et les IMG comme valeur
$ID = 12;
$IMG = 'adresse_image';

$tab = array();

$tab[$ID] = $IMG;
Ensuite pour le prochain ID, avant de rentrer la valeur dans le tableau il te suffit de faire if (isset($tab[$ID])). Et encore si ton tableau est écrit sous cette forme, même sans contrôle, la nouvelle valeur écrasera l'ancienne (et si c'est la même c'est pas gênant)