element aus array entfernen

  • Ersteller PowerBookGrafik
  • Erstellt am
P

PowerBookGrafik

Aktives Mitglied
Thread Starter
Dabei seit
12.03.2005
Beiträge
814
Reaktionspunkte
5
Hello !

habe z.B ein array mit array("1","2","3","4","5")

und möchte z.B die 3 rauslöschen ... nicht den 3ten wert sondern die 3 egal an welcher stelle sie stehen würde


lG vl kann mir ja schnell wer helfen =)
 
Du solltest vielleicht noch sagen in welcher Sprache du das machen willst !
 
aja sorry =) PHP =)
 
hilfe =( *push*
 
wegus schrieb:
Das ist nicht, was er wollte (und es löscht die "4").
PowerBookGrafik schrieb:
nicht den 3ten wert sondern die 3 egal an welcher stelle sie stehen würde


Code:
if /* oder while */ ( FALSE !== ($index=array_seach('3',$data)))
{
   unset ($data[$index] );
}
 
Zuletzt bearbeitet:
GENAU DAS SUCHTE ICH NICHT wegus!

PHP:
<?php

$array = array("aaa","bbb","ccc","ddd");

print_r($array);
echo("<br>");

if ( FALSE !== ($index=array_seach('ccc',$array)))
{
   unset ($array[$index]);
}


print_r($array);

?>

habe es so versucht ? geht aber nicht
 
danke habe es schon , habe es jetzt simple gemacht

PHP:
<?php

$array = array("aaa","bbb","ccc","ddd");

print_r($array);
echo("<br>");

$key = array_search('ccc', $array);  
unset ($array[$key]);



print_r($array);

?>
 
kann auch nicht!!!


!== setzt ja Typgleichheit voraus! Wie soll etwas Boolesch sein, wenn Du es gelöscht hast!? Etwas was nicht da ist kann nicht identisch TRUE/FALSE sein :)


[EDIT]

Nee, ist ja noch besser:

FALSE !== ($index=array_seach('ccc',$array)) <=>
FALSE !== variable=funktionswert <=> // Zuweisungen klappen immer
FALSE !== TRUE // Somit wurde das unset nie ausgeführt!



[/EDIT]

Bei Problemen immer soweit vereinfachen wie möglich:

PHP:
 <?php

$array = array("aaa","bbb","ccc","ddd");

print_r($array);
echo("<br>");

   unset ($array[2]);


print_r($array);
?>


Deine if-clause geht schlicht nicht auf!
 
Bei Problemen immer soweit vereinfachen wie möglich:

PHP:
 <?php

$array = array("aaa","bbb","ccc","ddd");

print_r($array);
echo("<br>");

   unset ($array[2]);


print_r($array);
?>

was willst du mir damit sagen ? mit diesem script erreich ich mein ziel in keinster art und weise !
 
wegus schrieb:
kann auch nicht!!!
[EDIT]

FALSE !== ($index=array_seach('ccc',$array)) <=>
FALSE !== variable=funktionswert <=> // Zuweisungen klappen immer
FALSE !== TRUE // Somit wurde das unset nie ausgeführt!
[/EDIT]
Da vertust Du Dich. Die Klammer sowohl zu Boolschem FALSE als auch zu einem Integer evaluieren. Deshalb ist der Code ok. In der array_search Doku steht dieser Code sogar bei den Kommentaren...

Das Problem mit
PHP:
if (FALSE !==( $index=array_search('ccc',$array)))
{ 
    unset($array[$index]); 
}
ist lediglich, dass es mit PHP < 4.0.2 nicht läuft, weil NULL anstatt FALSE geliefert wird, wenn das gesuchte Element nicht im Array ist. PowerBooksGrafiks Script läuft ansonsten.
 
Zuletzt bearbeitet:
ich würde das der robustheit halber aber noch so ändern (siehe php-dokumentation):

PHP:
$key = array_search('ccc', $array);  
if ($key !== FALSE) {
  unset ($array[$key]);
}
 
der_kay schrieb:
Die Klammer sowohl zu Boolschem FALSE als auch zu einem Integer evaluieren. Deshalb ist der Code ok.

Hab ich auch was gelernt! Ich komm halt noch aus PHP3-4 Zeiten ;)
Aber gerade diese ganzen Wandel lassen mich halt immer zu möglichst robusten Methoden greifen! Die Methode von thoralf halte ich auch für Lesbarer, aber das ist dann wieder Programmierstil resp. Geschmack!
 
Zurück
Oben Unten