我有这个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
另外,你怎么称呼它?反序列化?
答案 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,但与解决方案相比,这只会带来更多复杂性。