如何在PHP中将数组元素转换为字符串?

时间:2010-01-25 10:04:33

标签: php string arrays casting

如果我有一个包含对象的数组:

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

(每个对象都有__toString() - 方法)

如何将所有数组元素转换为字符串,以便数组$a不再包含对象,而是包含字符串表示形式?是否有单行或我必须手动循环数组?

6 个答案:

答案 0 :(得分:141)

单行:

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

参见PHP DOCS:

array_map

strval

享受! ;)

答案 1 :(得分:2)

未经测试,但这样的事情应该做到吗?

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

答案 2 :(得分:1)

您在寻找implode吗?

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

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

echo $comma_separated; // lastname,email,phone

答案 3 :(得分:0)

我现在无法测试它,但是你能检查一下implode()这样一个阵列会发生什么吗?应调用_toString

答案 4 :(得分:0)

Alix Axel有最好的答案。您也可以使用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);

享受

答案 5 :(得分:-5)

你有什么理由不能做到以下几点吗?

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