• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bestimmte Strings aus Array entfernen

Wiggum1

Neues Mitglied
Bei php-manual habe ich irgendwie nichts passendes nach, deswegen frage ich mal hier nach.

Ich habe ein array $buchstaben mit den Werten a,b,c,a,b,b,a
Jetzt möchte ich alle Elemente mit dem Wert b entfernen so dass a,c,a,a übrigbleibt.
Welche Funktion gibt es dafür?
 
Eine Funktion zum automatischen aussieben ist mir nicht bekannt.
Manuell würde es aber so gehen
PHP:
<?php
$array = array("a", "b", "c", "a", "b", "b", "a");
$count = 0;
foreach($array as $check){
	if($check == "b"){
		unset($array[$count]);
	}
	$count++;
}

//Testausgabe
foreach($array as $show){
	echo $show."<br>";
}
?>
 
Danke für die Antworten, ich habe die Lösung von Space Vampire übernommen; allerdings gab es Probleme mit den leeren Feldern weshalb ich die felder nicht gelöscht, sondern durch einen anderen Wert ersetzt habe. Jedenfalls habe ich mein Problem lösen können. :D
 
Wenn's wirklich um die Lücken in der Schlüsselfolge geht, Array entweder mit foreach durchlaufen oder die Schlüssel neu aufbauen.

PHP:
<?php

$a = array('a', 'b', 'c', 'a', 'b', 'b', 'a');

$filtered = array_filter($a, function ($val) { // Oder SpaceVampires Variante
    return ($val !== 'b');
});

$reindexed = array_slice($filtered, 0);

var_dump($a, $filtered, $reindexed);

Code:
array
  0 => string 'a' (length=1)
  1 => string 'b' (length=1)
  2 => string 'c' (length=1)
  3 => string 'a' (length=1)
  4 => string 'b' (length=1)
  5 => string 'b' (length=1)
  6 => string 'a' (length=1)

array
  0 => string 'a' (length=1)
  2 => string 'c' (length=1)
  3 => string 'a' (length=1)
  6 => string 'a' (length=1)

array
  0 => string 'a' (length=1)
  1 => string 'c' (length=1)
  2 => string 'a' (length=1)
  3 => string 'a' (length=1)
 
Zurück
Oben