Как нарисовать элементы массива в строках в PHP?

Если у меня есть массив с объектами:

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

(каждый объект имеет __toString() )

Как я могу передать все элементы массива в строку, чтобы массив $a содержал больше объектов, кроме их строкового представления? Есть ли один лайнер или мне приходится вручную прокручивать массив?

Однострочный:

 $a = array_map('strval', $a); 

Наслаждайтесь! 😉

Вы ищете взрыв ?

 $array = array('lastname', 'email', 'phone'); $comma_separated = implode(",", $array); echo $comma_separated; // lastname,email,phone 

Не проверено, но что-то вроде этого должно это сделать?

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

Я не могу проверить это прямо сейчас, но можете ли вы проверить, что произойдет, когда вы implode() такой массив? Необходимо вызвать _toString.

У Аликса Акселя самый приятный ответ. Вы также можете применить что-либо к массиву, хотя с помощью array_map …

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

наслаждаться

Есть ли причина, по которой вы не можете сделать следующее?

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