90 votes

Comment intégrer des éléments de tableau à des 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 de chaîne ? Existe-t-il une seule ligne ou dois-je boucler manuellement le tableau ?

218voto

Alix Axel Points 63455

Un one-liner :

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

Voir PHP DOCS :

array_map

strval

3voto

Jan Jaso Points 11

Alix Axel a la meilleure 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);

Profitez

2voto

Ben Everard Points 8295

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

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

2voto

YOU Points 44812

Vous cherchez implode ?

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

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

echo $comma_separated; // lastname,email,phone

-2voto

Pekka 웃 Points 249607

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X