繁体   English   中英

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

[英]PHP: Flattening 1 Dimensional array into a spaced string

经过多次搜索(并找到关于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.

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

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

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

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

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

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

“这个阵列永远不会有一个以上的密钥和单个值”

echo 'Authorization: '  .  array_shift(array_keys($arr)). ' ' . array_shift($arr) ; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM