1

经过大量搜索(并找到了关于多维度的无尽帖子,但没有单一维度),我想我会问这个问题。

我有一个数组

$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

4

3 回答 3

7

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

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

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

于 2013-02-21T01:36:35.807 回答
-1

PHP 在处理函数前面的字符串之前处理函数。尝试echoreturn. 我认为 1 来自 array_walk 函数的成功处理。

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

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

于 2013-02-21T01:32:50.597 回答
-3

“虽然这个数组永远不会有超过一个键和一个值”

echo 'Authorization: '  .  array_shift(array_keys($arr)). ' ' . array_shift($arr) ; 
于 2013-02-21T01:36:30.963 回答