bestimmtes feld aus array entfernen

mihawk

Mitglied
tach!
ich habe mittels explode() einen Array erzeugt.
PHP:
$ARRAY = explode('-',$STRING);

Jetzt möchte ich gezielt einzelne Elemente entfernen können, beispielsweise könnte

$STRING die Zeichenfolge objekt1-objekt2-objekt3-objekt2 enthalten,
$ARRAY ist dann ["objekt1","objekt2","objekt3","objekt2"].

In diesem Fall soll zum Beispiel objekt3 entfernt werden.
Geht das?
Geht es auch, dass, wenn in dem Beispiel objekt2 entfernt werden soll, nicht beide, sondern nur eines der beiden entfernt wird?

Ich hoffe, ich habe mein Problem eindeutig dargestellt und danke für eure Hilfe!
 
Das Problem ist, dass diese Funktionen alle gleichen Objekte entfernen. Ich suche aber etwas, womit ich nur ein Objekt entferne, und sollte dieses doppelt vorkommen, dann soll es auch nur einmal entfernt werden.
 
Du gehst das Array einfach mit einer foreach-Schleife durch. Dann kannst du den Wert des Array-Elements mit dem zu löschendem vergleichen und ggf. mit [phpf]unset[/phpf] löschen.

Sobald du ein Element gelöscht hast, kannst du die Schleife abbrechen, so bleibt ein eventuelles zweites Element mit selben Namen erhalten.
 
PHP:
<?
$array = array("Hallo ","wie ","gehts ","dir?");
foreach($array as $val) echo $val;
echo "<br>";
unset($array[array_search("wie ",$array)]);
foreach($array as $val) echo $val;
?>

prinzipiell einfach. bei doppelten einträgen einfach

PHP:
<?
$array = array("Hallo ","wie ","gehts ","dir?");
foreach($array as $val) echo $val;
echo "<br>";
array_unique($array);
foreach($array as $val) echo $val;
?>
 
Zurück