Zur Navigation

Python Script in PHP umwandeln?

1 Tom12

Python:
liste = []
for i in kommentare.strip().split(" "):
	if "@" in i:
		i = i.strip().split("@")
		if i[0] == "":
			del i[0]
		for name in i:
			liste.append("@" + name)
print(liste)

PHP-Teil bis jetzt:
<?php
	$kommentare = "test @fdgdsfg @dffgds fdg dfgdsfg dfghdgh @rgtegsdfdfg@dsfg";
	$liste = [];
	for ($i; isset($kommentare); explode(" ", $kommentare)) {
		if (stristr($i, "@")) {
			$i = explode("@", $i);
			if ($i[0] == "") {
				unset($i[0]);
			}
			for ($name; isset($i); $i) {
				echo [$name];
			}
		}
	}
?>

Wenn man das Script aufruft, landet man in einer Endlosschleife :/
Leider kenn ich mich mit PHP-Schleifen nicht so gut aus :/
Hat jemand eine Idee wie das Script in PHP Funktionieren könnte?

27.08.2018 16:16

2 Jörg

Ich bin auch nicht so der große Python-Held :) ich denke mal, das "for .. in" lässt sich am besten mit einer foreach Schleife "übersetzen"; wobei ich nach dem Splitten des Arrays $i für die Einzel-Elemente einen andern Bezeichner wählen würde (hier: $j)

<?php

$kommentare = "test @fdgdsfg @dffgds fdg dfgdsfg dfghdgh @rgtegsdfdfg@dsfg";
$liste = [];
$arr_kommentare = explode(" ", $kommentare);
foreach ($arr_kommentare as $i) {
    if (stristr($i, "@")) {
        $j = explode("@", $i);
        if ($j[0] == "") {
            unset($j[0]);
        }
        foreach ($j as $name) {
            $liste[] = "@" . $name;
        }
    }
}

print_r($liste);

27.08.2018 16:46 | geändert: 27.08.2018 16:46

1 Forenmitglied fand diesen Beitrag gut

Beitrag schreiben (als Gast)





[BBCode-Hilfe]