web-dev-qa-db-fra.com

Comment convertir des éléments de tableau en chaînes en PHP?

Si j'ai un tableau avec des objets:

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

(chaque objet a une méthode __toString()-)

Comment puis-je convertir tous les éléments du tableau en chaîne de sorte que le tableau $a ne contienne plus d'objets, mais leur représentation en chaîne? Existe-t-il une ligne ou dois-je parcourir manuellement le tableau?

63
acme

Un one-liner:

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

Voir PHP DOCS:

array_map

strval

Prendre plaisir! ;)

133
Alix Axel

Pas testé, mais quelque chose comme ça devrait le faire?

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

Recherchez-vous imploser ?

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

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

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

Je ne peux pas le tester pour le moment, mais pouvez-vous vérifier ce qui se passe lorsque implode() un tel tableau? Le _toString devrait être appelé.

0
Pekka 웃

Alix Axel a la plus belle réponse. Vous pouvez également appliquer n'importe quoi au tableau avec array_map comme ...

//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);

Prendre plaisir

0
Jan Jaso