PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   array_unique() - Wie gleichen Text herausfiltern? (http://www.selfphp.de/forum/showthread.php?t=5047)

Viper 27.07.2003 15:35:57

array_unique() - Wie gleichen Text herausfiltern?
 
Hi!

Bsp.:
$array[0] = "Text irgendwas Text" ;
$array[1] = "Text blabla Text" ;
$array[2] = "Text wasanderes Text" ;

Jetzt soll "Text" aus den Arrays gefiltert werden. "Text" ist immer das selbe, nur was zwischen "Text" steht ist unterschiedlich. Allerdings weiss ich vorher natürlich nicht wie "Text" aussieht.

Oder gibt es eine andere Möglickeit die Arrays zu vergleichen und nur die Unterschiede aus zu geben?

Ich hoffe ihr habt jetzt verstanden was ich meine und könnt mir helfen!?

Gruss,Viper

c4 27.07.2003 16:17:10

Du willst also nur das haben, was zwischen 'Test' und 'Test' steht? Davon dann aber auch nur jedes Exemplar einmal?
Ich würde das Array durchgehen, das zwischen den 'Test's auslesen, in einem weiteren Array speichern und dieses dann mit array_unique() normalisieren.
PHP-Code:

<?php
$arr
[0]="Text irgendwas Text";
$arr[1]="Text blabla Text";
$arr[2]="Text blabla Text";
$arr[3]="Text wasanderes Text";

for (
$i=0$i<count($arr); $i++) {
    
$arr2[$i]=preg_replace('|(text )(.*)( text)|is''\2'$arr[$i]);
}
print_r($arr2);

$arr3=array_unique($arr2);

print_r($arr3);
?>


Viper 27.07.2003 18:04:55

Leider hat mir auch das nicht weiter geholfen.

Mal anders erklärt:
Ich Lese folgendes aus der Seite -
- index.php?s=erste_seite - aus:
Irgendwelche Inhalte * Gästebuch und Inhalt * weitere Inhalte
- index.php?s=zweite_seite - aus:
Irgendwelche Inhalte * Irgendwas * weitere Inhalte
- index.php?s=dritte_seite - aus:
Irgendwelche Inhalte * Was ganz anderes * weitere Inhalte

Jetzt ist ja in jedem Fall "Irgendwelche Inhalte" und "weitere Inhalte" gleich.
Ich möchte jetzt das mir nur "Gästebuch und Inhalt", "Irgendwas" sowie "Was ganz anderes" angezeigt werden.
Und da haperts :-(

Viper

c4 27.07.2003 18:12:00

Ach so. Klar.

Wird der relevante Textabschnitt mit * eingegrenzt? Wenn ja, dann müsste man halt den regulären Ausdruck anpassen. Problematisch wird es dann nur, wenn irgendwo anders noch Sternchen sind.

Viper 27.07.2003 18:16:10

Nein. Die * sind nur von mir als Platzhalter eingesetzt worden.
Es handelt sich um den (Text-)Inhalt unterschiedlicher HTML Dateien. Nur das Teile des Textes dieselben sind.
Und genau die möchte ich filtern bzw. nicht anzeigen lassen!
Falls das überhaupt funktioniert!?

Viper

c4 27.07.2003 18:43:41

Na gut, dann versuchen wir mal das:
PHP-Code:

<?php
// | --> begrenzer
// i und s --> Gross- und Kleinschreibung und Zeilenumbrueche egal
// Rest ist Text, der ersetzt/entfernt werden soll
$arr_strings[0]='|te1xt|is';
$arr_strings[1]='|te2xt|is';
$arr_strings[2]='|te3xt|is';
$arr_strings[3]='|te4xt|is';

$arr[0]="TE1xT irgendwas Te4Xt";
$arr[1]="Te2xT blabla Te3xt";
$arr[2]="TE3xt blabla Te2XT";
$arr[3]="Te4xt wasanderes TE1xt";

for (
$i=0$i<count($arr); $i++) {
    
$arr2[$i]=preg_replace($arr_strings''$arr[$i]);
}
print_r($arr2);

$arr3=array_unique($arr2);

print_r($arr3);
?>

So wirklich Gefallen finde ich an der Lösung nicht, aber es klappt.

Viper 06.08.2003 00:54:56

@c4
Sorry das ich erst so spät antworte :) und Danke für Deine Hilfe. Auch wenn es nicht so geklappt hat wie ich wollte.

@all
edit:

Hat sich erledigt!



Viper


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:45:48 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.