Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Наслаждайтесь!;)

Ответ 2

Вы ищете implode?

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

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

echo $comma_separated; // lastname,email,phone

Ответ 3

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

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

Ответ 4

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

Ответ 5

У Аликса Акселя самый приятный ответ. Вы также можете применить что-либо к массиву, хотя с помощью 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);

Enjoy

Ответ 6

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

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