PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Eindeutige Zahl mit preg_match finden (http://www.selfphp.de/forum/showthread.php?t=26116)

phmax 02.03.2018 22:36:23

Eindeutige Zahl mit preg_match finden
 
Hi, ich habe eine kleine flatfile.txt wo ungefähr folgendes steht.

Beispiel:
Nummer: 01|Preis: 120.000 Euro|Stadt: Musterstadt
Nummer: 02|Preis: 280.000 Euro|Stadt: Mustercity

Ich möchte nun die vorhandenen Preise in 10.000 Schritten auslesen und als Button in einer php ausgeben. Das Problem ist allerdings, dass nun neben 120.000 und 280.000 auch 20.000 und 80.000 ausgegeben werden. Wie kann ich denn nur die eindeutigen Zahlen anzeigen? Bin für alle Tipps offen. Danke.

PHP-Code:

for($i=10000;$i<510000;$i=$i+10000)
{
   if(
preg_match("/".number_format($i0'''.')."/",$text)) 
   echo 
'
   <a href="/result.php?filter='
.number_format($i0'''.').'">
   <button class="btn">'
.number_format($i0'''.').'</button>
   </a>
   '
;


Viele Grüße, phmax

vt1816 03.03.2018 09:16:37

AW: Eindeutige Zahl mit preg_match finden
 
Sollte Deine Datei komplett so wie beschrieben aussehen, arbeite mit explode() statt preg_match().

phmax 03.03.2018 17:48:44

AW: Eindeutige Zahl mit preg_match finden
 
Ja, mein Fehler, die Datei sieht nicht ganz so gleichförmig aus, sodass explode schwierig wird. Also der Preis ist immer an einer anderen Stelle.

Also eher so:
Nummer: 01|Info: Info01|Preis: 120.000 Euro|Stadt: Musterstadt
Nummer: 02|Preis: 280.000 Euro|Stadt: Mustercity
Nummer: 03|Info: Info03|Platz: 3|Preis: 100.000 Euro|Stadt: Mustercity

Wenn es mir gelänge ein vorangestelltes Leerzeichen bei preg_match $i einzubauen, würde es glaub ich klappen. (" ".$i) z.B. gibt einen Fehler.

chorn 05.03.2018 08:27:40

AW: Eindeutige Zahl mit preg_match finden
 
Du kannst das ja immernoch Zeile für Zeile durchgehen und dann am Pipe-Symbol exploden, danach musst du halt in Jeder Spalte nach "Preis: " am String-Anfang suchen und den Rest als Zahl interpretieren.

vt1816 05.03.2018 12:29:18

AW: Eindeutige Zahl mit preg_match finden
 
PHP-Code:

for($i=10000;$i<510000;$i=$i+10000)
{
   if(
preg_match("/ ".number_format($i0'''.')."/",$text)) 
   echo 
'
   <a href="/result.php?filter='
.number_format($i0'''.').'">
   <button class="btn">'
.number_format($i0'''.').'</button>
   </a>
   '
;


Siehst Du den kleinen Unterschied zum Original?

phmax 05.03.2018 13:26:12

AW: Eindeutige Zahl mit preg_match finden
 
Zitat:

Zitat von vt1816 (Beitrag 149594)
PHP-Code:

  if(preg_match("/ " 

Siehst Du den kleinen Unterschied zum Original?

Ja ich sehe ihn. Hätte nie gedacht, dass DORT das Leerzeichen rein muss. Danke, hast mir sehr geholfen!!

Gruß, phmax


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

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