In Array suchen und löschen

So müsste es funktionieren. Ansonsten rate ich dir dich einfach mal zu trauen, etwas auszuprobieren. Solange du nicht mit Daten arbeitest, die du irreparabel schädigen könntest, kann auch nichts schlimmes passieren (Regel: Never touch a running system). Du wirst also dann sehen, ob etwas so funktioniert, wie du es willst, oder nicht. Und wenn irgendwas seitens der Syntax nicht stimmt oder aus anderen Gründen, dann wird dir der Parser (oder in anderen Sprachen der Compiler) schon eine Fehlernachricht anzeigen.
 
Ok ich habe es einfach mal ausprobiert.

Aber leider schaut das Array nun so aus:
PHP:
Array
(
    [0] => 
    [1] => 
    [96] => 
    [191] => 
    [192] => 
)

Kann ich das nicht irgendwie neu sortieren lassen? Also aus "96" wird "2" und aus "191" wird "3" usw.?
 
Ich habe es so gemacht:
PHP:
$array = array(/* ... */);

function at_delete($item) {
   return (strstr($item, '@') === false);
}

$array = array_filter($array, 'at_delete');

Hallo.

Ich hätte noch eine Frage zu dieser Funktion.

Kann ich in der selben Funktion nach weiteren Zeichen suchen?

@ ( ) < > sollen gelöscht werden (nicht in dieser Reihenfolge!)

Geht das? Ich habs ausprobiert aber es geht nicht.

PHP:
$array = array(/* ... */);

function at_delete($item) {
   return (strstr($item, '@','(',')','<','>') === false);
}

$array = array_filter($array, 'at_delete');
 
Versuche es mal so:
PHP:
$array = array(/* ... */); 

function at_delete($item)
{ 
   return (strpbrk($item, '@()<>') === false); 
} 

$array = array_filter($array, 'at_delete');
Außerdem kannst du in Zukunft für solche Fragen auch das PHP-Handbuch unter php.net befragen. Da stehen solche Sachen im Detail.
 
Danke @einfach nur crack
Ich werde das gleich mal direkt ausprobiereren.

Außerdem kannst du in Zukunft für solche Fragen auch das PHP-Handbuch unter php.net befragen. Da stehen solche Sachen im Detail.

Ich habe bis 04.00 Uhr morgens alles erdenklicke ausprobiert!

Edit:

Die Funktion löscht mir leider das gesamte Array.

PHP:
$array = array(/* ... */); 
 
function at_delete($item)
{ 
   return (strpbrk($item, '@[]()<>') === false); 
} 
 
$array = array_filter($array, 'at_delete');

Edit:

Ich habe schon einmal einen Fehler entdeckt.

Ich darf nicht nach < oder ( suchen sondern MUSS nach <.png oder (.png suchen da in dem Array ein IMG-Tag vorkommt.

Klar das dann das ganze Array gelöscht wird.
 
Zuletzt bearbeitet:
Zurück