begin process at 2012 05 28 16:48:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Trucs et astuces

 > 

array_unique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

array_unique

mercredi 18 janvier 2006 à 15:18:05 | array_unique

coockiesch

Bonjour!
J'ai un tableau à plusieurs dimensions.. Il s'agit d'informations sur des photos:dossier, id de la photo. J'aimerais enlever les doublons mais si j'utilise array_unique, ben il ne me reste qu'une image par dossier. Moi j'aimerais enlever quand le dossier ET l'id sont les mêmes. Y a t il une fonction qui fait ca? Dois-je crée une chaîne où je concatène le dossier et l'id? Autre méthode?

Merci!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
mercredi 18 janvier 2006 à 17:23:35 | Re : array_unique

malalam

Administrateur CodeS-SourceS
Hello,

on peut voir la structure de ton tableau stp ?
mercredi 18 janvier 2006 à 19:19:07 | Re : array_unique

coockiesch

Je le crée comme ceci:
while( ( $row = mysql_fetch_assoc( $sql_result ) ) !== false )
            $_SESSION['search_in_pictures_results'][$i++] = $row;

Et, dans l'ordre des indices:
id, galerie_nom, galerie_dossier

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
jeudi 19 janvier 2006 à 09:19:26 | Re : array_unique

malalam

Administrateur CodeS-SourceS
donc ça donne genre
$_SESSION['search_in_pictures_result'][0] = id1
$_SESSION['search_in_pictures_result'][1] = galerie_nom1
$_SESSION['search_in_pictures_result'][2] = galerie_dossier1

?

Pas cool lol...
c'eut été plus simple, je pense, en indexant avec un tableau
$_SESSION['search_in_pictures_result'][0] = array ('id' => id1, 'galerie_nom' => galerie_nom1, 'galerie_dossier' => galerie_dossier1)

Hmm...bon à 1ère vue, ça va être compliqué. Va sans doute falloir faire un truc du genre créer un nouveau tableau, indexé avec les indexs de tes id par exemple, dans lequel tu concatènes id et galerie_dossier.
Puis tu le dédoublonnes avec array_unique ()
Puis il te reste à virer les clef, clef +1, clef + 2 de ta session, ou tu ne trouves pas la clef dans le tableau créé.
Heu...c'est compréhensible ?
Là à froid de bon matin, je ne trouve rien de plus simple.

jeudi 19 janvier 2006 à 14:19:40 | Re : array_unique

FhX

" donc ça donne genre
$_SESSION['search_in_pictures_result'][0] = id1
$_SESSION['search_in_pictures_result'][1] = galerie_nom1
$_SESSION['search_in_pictures_result'][2] = galerie_dossier1

?"

Pas du tout :)
$_SESSION['...'][0] = array( $key1 => $val1, $key2 => $val2, $key3 => $val3 );
$_SESSION['...'][1] = array( $key1 => $val1, $key2 => $val2, $key3 => $val3 );

etc...
puisqu'il fait un while() sur un fetch_assoc(), ca retourne bien quelque chose comme ca :
while ( $data = mysql_fetch_assoc($requete) ) {
           // $data est bien un array genre : array ( 'id' => 1, 'truc' => 'machin' );
           // Donc si il fait :
           $_SESSION['...'][$i] = $data;
            $i++;
}

//ca devrait être bon pour indexer le tableau.
Enfin chui malade, j'ai peut etre compris de travers !
 
jeudi 19 janvier 2006 à 14:50:18 | Re : array_unique

malalam

Administrateur CodeS-SourceS
Wow exact, t'es malade, mais t'as mieux lu que moi ;-)

Dans ce cas, pour dédoublonner...hmmm...
J'ai pas la tête à ça lol :-(
je trouve que des trucs à la con : pour chaque clef numérique (donc en parcourant ton tableau), tu fais un array_keys avec comme search_value, ton $val1 et ton $val2, si les deux renvoie qque chose, tu vires la clef courante (puisque c'est l'entrée avec laquelle tu cherches), et tu vires toutes les autres.
Je m'explique mal, suis désolé, mais j'ai chaud et je suis débordé lol...
jeudi 19 janvier 2006 à 19:38:21 | Re : array_unique

coockiesch

Salut à vous!
Sinon, je concatène les deux ( id & info gallerie ), je classe par ordre croissant... Je parcours et je supprime, avec un truc, genre:

$i = 1;
$tot = nombre d'éléments du tableau
$courant = $_SESSION['...'][0][0]

while( $i < $tot )
{
  if( $_SESSION['...'][$i] == $courant )
    on supprime $_SESSION['...'][$i][0]
  else
     $courant = $_SESSION['...'][$i][0]
 
  $i++;
}

Z'en pensez quoi?
Merci!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
lundi 23 janvier 2006 à 11:18:55 | Re : array_unique

coockiesch

UP! :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
jeudi 26 janvier 2006 à 11:13:16 | Re : array_unique

coockiesch

Salut!
Alors voilà ce que j'ai fait... C'est bourrin et si vous avez mieux, c'est volontiers mais en attendant... :)

// récupération des données
while( ( $row = mysql_fetch_assoc( $sql_result ) ) !== false )
            $temp_array[$i++] = $row;

// tri des données
usort( $temp_array, "comparer_imgs" );

// copie de la première ligne
$_SESSION['search_in_pictures_results'][0] = $temp_array[0];

$new_array_id = 0;
        for( $j = 1; $j < $i; $j++ )
        {
            // si enregistrement différent, on copie dans le tableau final
            if( $temp_array[$j]['id'] != $_SESSION['search_in_pictures_results'][$new_array_id]['id'] || $temp_array[$j]['galerie_id'] != $_SESSION['search_in_pictures_results'][$new_array_id]['galerie_id'] )
                $_SESSION['search_in_pictures_results'][++$new_array_id] = $temp_array[$j];
        }
       
// nombre de résultats
$_SESSION['search_in_pictures_nbresults'] = $new_array_id + 1;
       
// libération de la mémoire
unset( $temp_array );
mysql_free_result( $sql_result );

Avec aussi:
function comparer_imgs($array_a, $array_b)
{
    $galerie_id = strcmp( $array_a['galerie_id'], $array_b['galerie_id'] );
  $img_id = strcmp( $array_a['id'], $array_b['id'] );
   
    if( !$galerie_id && !$img_id )
        return 0;
   
    if( !$galerie_id )
        return $img_id;
       
    return $galerie_id;
}

Voilà!

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"


Cette discussion est classée dans : dossier, id, array, photos, unique


Répondre à ce message

Sujets en rapport avec ce message

Somme, valeur unique depuis requête [ par ltab ] Bonjour,Je cherche en vain depuis des lustres à faire l'addition de champs provenant d'une requête$sql = "select appartement FROM chambres WHERE id = [Aide] Unique id [ par Denzel68 ] Bonjour voila je besoin d'un système d'id unique pour certaine pages de mon site je un petit système mais je voudrais savoirs si l'id donnez sera bien Listes liées et upload sans recharger la page [ par habroc ] Bonjour , J'ai un problème avec le code suivant ; pour lequel j'ai 4 listes liées , et un upload sur la meme page , qui doivent renseigner les champs array et formulaire [ par laubro ] Bonjourj'ai encore des soucis avec les tableauxvoils, je récuprèe des données dans des champs texte dans un formulaire, je veux pouvoir les modifier e ordre affichage des fichiers [ par yahou29 ] Bonjour à tous.Je suis actuellement en train de développer un module d'administration de galerie photos.J'aimerai que l'administrateur puisse modifier Envoi de piece jointe telechargée via php [ par cendrillon84 ] Bonjour,J'ai un formulaire en flash qui télécharge via php un fichier(.doc ou .pdf) dans l'ordinateur de la personne remplissant le formulaire.Pour l' Algorithme recursif [ par Perecastorr ] Bonjour, Mon problème étant très spécifique et assez compliqué je vais essayé d'être le plus clair possible. J'ai un script PHP qui prend en parametr fonction array_unique [ par philagui ] Bonjour,est-ce que quelqu'un pourrait me donner de plus amples renseignements sur la fonction array_unique. J'ai lu le manuel php mais j'ai pas tout c récursivité quand tu me tiens [ par livingdead ] j'ai une requete qui traite de catégrorie, et ses catégories peuvent avoir une catégorie parent qui peut elle aussi avoir un parent etc .............. Session, id qui change [ par perig ] Bonjours Encore une petite questionSur mes pages j'utilise une session mais elle est instable, des fois elles ne fonctionne pas.Pourtant c'est un code


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales