2 Stimmen

Php-Array inkrementiert nicht ordnungsgemäß.

In meinem PHP-Code führe ich eine Reihe von Shell-Skripten aus, die schließlich folgendes ausgeben

['20. Oktober 2003', '047085815X', '978-\n0470858158', '1', u'\nWireless Foresight: Szenarien der mobilen Welt im Jahr 2015 [Gebundene Ausgabe]\n']

Die obige Ausgabe wird in $temp gespeichert.

Wenn ich jedoch echo $temp[0] mache, wird die erste öffnende Klammer gedruckt und echo $temp[1] druckt das Apostroph usw.....

Ich glaube, das liegt daran, dass es ein String und kein Array ist.

Ich möchte dies jedoch in ein Array umwandeln, bei dem jedes Element durch ein Komma getrennt ist.

Bitte beachten Sie jedoch, dass der 20. Oktober 2003 ein Komma enthält und das sollte sein eigenes Element bleiben.

Kann mir jemand sagen, nach welcher Funktion ich suche?

2voto

Mark Baker Punkte 204969

Entfernen Sie die öffnenden und schließenden [], verwenden Sie dann str_getcsv()

1voto

SubjectCurio Punkte 4642

Ich denke, das ist die Funktion, nach der du suchst

str_getcsv()

schnelles Beispiel

$line = "'October 20, 2003', '047085815X', '978-\n0470858158', '1', '\nWireless     Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n'";

$parsed = str_getcsv(
  $line, # Eingabezeile
  ",",   # Trennzeichen
  "'"   # Einschlusszeichen
);

print_r($parsed);

Ausgabe:

Array ( [0] => October 20, 2003 [1] => 047085815X [2] => 978- 0470858158 [3] => 1 [4] => Wireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover] )

0voto

Daedalus Punkte 7600

Was du hast, scheint eher einem JavaScript-Array zu ähneln. Ich weiß nicht, wie dein Shell-Skript funktioniert, aber ich weiß, wie PHP-Arrays gebildet werden; du brauchst folgendes, um ein PHP-Array zu bilden:

$temp = array('item1','item2','etc');

Also würde ich für dich Folgendes ausgeben, ohne die eckigen Klammern:

$temp = array('October 20, 2003', '047085815X', '978-\n0470858158', '1', '\nWireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n');

Und dann wird $temp[0] die richtigen Informationen zurückgeben.

0voto

Slayer Birden Punkte 3624

Ihre Eingabe sieht sehr nach einem JS-Array aus, abgesehen vom mysteriösen u-Symbol, das außerhalb der einfachen Anführungszeichen steht, das jeder andere Antwort scheinbar ignoriert. Das werde ich auch tun. Wenn Sie Ihre einfachen Anführungszeichen in doppelte Anführungszeichen ändern, können Sie die json_decode-Funktion verwenden, um ein PHP-Array aus dem JS-Array zu erhalten.

$str = '["October 20, 2003", "047085815X", "978-\n0470858158", "1", "\nWireless Foresight: Scenarios of the Mobile World in 2015 [Hardcover]\n"]';
print_r(json_decode($str));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X