PHP:将1维数组扁平化为间隔开的字符串

时间:2013-02-21 01:29:06

标签: php arrays

经过多次搜索(并找到关于multidims的无尽帖子,但没有单一的dims)我以为我会问这个问题。

我有一个数组

$arr = array('foo' => 'bar');

我正在寻找

的输出
$str = 'foo bar';

这必须是一个班轮,没有递归循环等等,我认为它必须是某种或那种的lambda。这个数组永远不会有多个密钥和单个值。

我认为它最终会看起来像

$arr = array('foo' => 'bar');
echo 'Authorization: '  . array_walk($arr, function ($v, $k) { echo "$k $v"; });

,不幸的是最终为foo barAuthorization: 1

不知道1来自哪里= P

3 个答案:

答案 0 :(得分:7)

这应该很简单,因为数组刚刚初始化并且指针位于数组的开头:

echo 'Authorization: ' . key($arr) . ' ' . current($arr);

当然,如果您已经从数组中读取数据,那么在执行此操作之前,您需要执行reset()以将指针返回到数组的开头。

答案 1 :(得分:-1)

PHP在处理前面的字符串之前处理该函数。尝试使用echo替换函数中的return。我认为1来自于array_walk函数的成功处理。

echo 'Authorization: '  . array_walk($arr, function ($v, $k) { return "$k $v"; });

更新:查看示例#1 http://php.net/manual/en/function.key.php

答案 2 :(得分:-3)

“虽然”

,但这个数组绝不会有多个密钥和单个值
echo 'Authorization: '  .  array_shift(array_keys($arr)). ' ' . array_shift($arr) ;