web-dev-qa-db-ger.com

Wie gibst du Array-Elemente in PHP in Strings um?

Wenn ich ein Array mit Objekten habe:

$a = array($objA, $objB);

(jedes Objekt hat eine __toString()- Methode)

Wie kann ich alle Array-Elemente in eine Zeichenfolge umwandeln, sodass das Array $a keine weiteren Objekte enthält, sondern deren String-Darstellung? Gibt es einen Einzeiler oder muss ich das Array manuell durchlaufen?

63
acme

Ein Einlage:

$a = array_map('strval', $a);
// strval is a callback function

Siehe PHP DOCS:

array_map

strval

Genießen! ;)

133
Alix Axel

Nicht getestet, aber so etwas sollte es tun?

foreach($a as $key => $value) {
    $new_arr[$key]=$value->__toString();
}
$a=$new_arr;
2
Ben Everard

Suchen Sie implodieren ?

$array = array('lastname', 'email', 'phone');

$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone
1
YOU

Ich kann es jetzt nicht testen, aber können Sie überprüfen, was passiert, wenn Sie ein solches Array implode() ? __ToString sollte aufgerufen werden.

0
Pekka 웃

Alix Axel hat die schönste Antwort. Mit array_map können Sie auch alles auf das Array anwenden, wie ...

//All your objects to string.
$a = array_map(function($o){return (string)$o;}, $a);
//All your objects to string with exclamation marks!!!
$a = array_map(function($o){return (string)$o."!!!";}, $a);

Genießen

0
Jan Jaso