Mailinglisten-Archive |
--------------678DFC4EB2C15E546B955FAF Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Hallo Helge, > Helge Frowein wrote: > > ich möchte gerne aus einem Array ein Element, dessen Index ich habe, > entfernen, möglichst auch mitten raus... > in Perl gibt es dazu tolle Funktionen, und in PHP4 dann auch, aber > nicht > jetzt, in PHP 3 > PHP4 zu installieren ist NICHT die Lösung in meinem Falle, aus > verschiedenen > Gründen! > die Nachfolgende Funtion hatte ich mal für zwei Arrays erstellt, wo aus der $biglist ein return aller Elemente erfolgt die nicht in der $needlelist enthalten sind. Du kannst die Variable, in der Dein zu entfernender Wert steht in eine Arrayvariable umwandeln ( settype($variable, "array") ) und als 2.Parameter($needlelist) einsetzen. Du erhältst dann eine Liste ohne diesen Wert(en) zurück. Viel Spass! --Steffen if(!function_exists("rnotintersect")){ function rnotintersect($biglist,$needlelist) {//vom 28.09.1999, Steffen Sander //return der Elemente aus dem $biglist-Array die nicht im //$needlelist-Array enthalten sind $bignum = count($biglist); $needlenum = count($needlelist); sort($biglist); sort($needlelist); for($b=0;$b < $bignum;$b++) {//komplette Liste durchgehen for($n=0;$n < $needlenum;$n++) {//mit den registierten Seiten vergleichen //(ohne Dubplikate) if( $biglist[$b] == $needlelist[$n] ) { $levelexist += 1;//Datei ist schon vorhanden $union_indexes[] = $b; //den Zaehler uebergeben //der in beiden vorhanden ist }//end if big == needle }//end for $needlenum if(!$levelexist) {//wenn Datei noch nicht registriert, //dann uebernehmen $notreg[] = $biglist[$b]; }else{ $levelexist = 0;//reset fuer den naechsten Durchlauf }//end if !$levelexist }//end for $bignum return $notreg; }//end function rnotintersect($biglist,$needlelist) }//if(!function_exists... -- Steffen Sander - Internet/Intranet Softwareentwicklung CRS Computer Register Service GmbH - Ritterstr. 11 - 10969 Berlin mailto:s.sander_(at)_crs.de -Tel: +49-30-614 60 01 - Fax: +49-30-614 85 81 http://www.crs.de - http://www.markthalle.de - http://www.stadtnetz.net --------------678DFC4EB2C15E546B955FAF Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Hallo Helge,
Helge Frowein wrote:ich möchte gerne aus einem Array ein Element, dessen Index ich habe,
entfernen, möglichst auch mitten raus...
in Perl gibt es dazu tolle Funktionen, und in PHP4 dann auch, aber nicht
jetzt, in PHP 3
PHP4 zu installieren ist NICHT die Lösung in meinem Falle, aus verschiedenen
Gründen!die Nachfolgende Funtion hatte ich mal für zwei Arrays erstellt,
wo aus der $biglist ein return aller Elemente erfolgt die nicht in
der $needlelist enthalten sind.
Du kannst die Variable, in der Dein zu entfernender Wert steht in
eine Arrayvariable umwandeln ( settype($variable, "array") )
und als 2.Parameter($needlelist) einsetzen.
Du erhältst dann eine Liste ohne diesen Wert(en) zurück.Viel Spass!
--Steffen
if(!function_exists("rnotintersect")){
function rnotintersect($biglist,$needlelist)
{//vom 28.09.1999, Steffen Sander
//return der Elemente aus dem $biglist-Array die nicht im
//$needlelist-Array enthalten sind
$bignum = count($biglist);
$needlenum = count($needlelist);
sort($biglist); sort($needlelist);
for($b=0;$b < $bignum;$b++)
{//komplette Liste durchgehen
for($n=0;$n < $needlenum;$n++)
{//mit den registierten Seiten vergleichen
//(ohne Dubplikate)
if( $biglist[$b] == $needlelist[$n] )
{
$levelexist += 1;//Datei ist schon vorhanden
$union_indexes[] = $b;
//den Zaehler uebergeben
//der in beiden vorhanden ist
}//end if big == needle
}//end for $needlenum
if(!$levelexist)
{//wenn Datei noch nicht registriert,
//dann uebernehmen
$notreg[] = $biglist[$b];
}else{
$levelexist = 0;//reset fuer den naechsten Durchlauf
}//end if !$levelexist
}//end for $bignum
return $notreg;
}//end function rnotintersect($biglist,$needlelist)
}//if(!function_exists...--
Steffen Sander - Internet/Intranet Softwareentwicklung
CRS Computer Register Service GmbH - Ritterstr. 11 - 10969 Berlin
mailto:s.sander_(at)_crs.de -Tel: +49-30-614 60 01 - Fax: +49-30-614 85 81
http://www.crs.de - http://www.markthalle.de - http://www.stadtnetz.net
--------------678DFC4EB2C15E546B955FAF--
php::bar PHP Wiki - Listenarchive