如何将PHP数组格式化为字符串

时间:2013-06-30 23:38:54

标签: php

我有这个php数组:

$items = array (
    "Item 1" => "Value 1",
    "Item 2" => "Value 2",
    "Item 3" => "Value 3"
);

我想知道是否有一个优雅的PHP函数,我从来没有听说过这样做:

$output = "";
foreach ( $items as $key => $value ) {
    $output .= sprintf( "%s: %s\n" , $key , $value );
}
echo $output;

当然会输出:

Item 1: Value 1
Item 2: Value 2
Item 3: Value 3

另外,你怎么称呼它?反序列化?

2 个答案:

答案 0 :(得分:5)

始终有array_walk功能。您的示例可能如下所示:

function test_print($value, $key) {
    echo sprintf( "%s: %s\n" , $key , $value );
}

$items = array (
    "Item 1" => "Value 1",
    "Item 2" => "Value 2",
    "Item 3" => "Value 3"
);

array_walk($items, 'test_print');

在定义函数后,您可以根据需要在整个代码中重用array_walk($items, 'test_print');

如果您正在处理多维数组,还有array_walk_recursive函数。

答案 1 :(得分:1)

除了缺少连接运算符之外,您的解决方案没有任何问题。

$output = "";
foreach ( $items as $key => $value ) {
    $output .= sprintf( "%s: %s\n" , $key , $value );
}
echo $output;

请记住,这只会处理单维数组。

PHP中有很多内置函数,我们有时会忘记我们实际上必须编写代码。评论中提到您可以使用其中一个array_ *函数,例如array_reduce,但与解决方案相比,这只会带来更多复杂性。