Mailinglisten-Archive |
> -----Original Message----- > From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of > Andreas Kaiser > Sent: Friday, May 11, 2001 10:22 AM > To: Juri.Smarschevski > Subject: Re: [php] Doppelte Eintraege in Array > > > Hallo Juri, Hi Andreas, > > <besseresBeispiel> > $i = 0; > while ($db->next_record()) { > $res[$i]["id"] = $db->f("id"); > $res[$i]["prodkoeff"] = $prodkoeff($db->f("id")); > $res[$i]["prodfaktor"] = $prodfaktor($db->f("id")); > if ($res[$i]["prodfaktor"] > 0) { > $res[$i]["prodgroup"] = $prodgroup($res[$i]["prodfaktor"]); > } else { > $res[$i]["prodgroup"] = $prodgroup($db->f("id"); > } > $i++; > } // while > </besseresBeispiel> > > Jetz kann es trotzdem passieren, das ich doppelte > $res[$i]["prodfaktor"] Einträge in meinem Array habe ("prodfaktor" > liegt doppelt vor). > Bei den Elementen wo $res[x]["prodfaktor"] == $res[y]["prodfaktor"] ist, > möchte ich das komplette Element $res[y] aus dem Array löschen. > Gibt es dafür eine Funktion ähnlich array_unique oder es sogar diese > Funktion? ist mir nicht bekannt, wenn man dies per Hand abbilden wollte, koennte die function in Deinem Fall etwa so aussehen. $arrNew = $arrTmp = array(); for ($i=0; $i<count($res); $i++) { if (isset($arrTmp[ $res[$i]["prodfaktor"] ])) continue; $arrTmp[ $res[$i]["prodfaktor"] ] = 1; $arrNew[] = $res[$i]; // oder $arrNew[$i] = $res[$i]; falls Du die gleiche $i behalten moechtest. } unset ($arrTmp); $res = $arrNew; unset ($arrNew); sicherlich gibt's noch ein paar andere moeglichkeiten uebrigens $prodgroup($res[$i]["prodfaktor"]) etc. a la $name(...) kapiere ich syntaktisch nicht ganz. oder ist's eine nicht gelungene copy-paste variante ;-) ? Gruss, Juri
php::bar PHP Wiki - Listenarchive