片段:
$temp = array();
foreach ($data as $key => $value) {
// This line varies, from HTML to URLs, to anything in between
array_push($temp, "<b>$key:</b> $value");
}
$request = implode('<br/>', $temp); // Glue also varies depending on needs
unset($temp);
这是一个远离通常的地方
$string .= 'blah<br/>'
.没关系rtrim
.任何人都可以向我展示一种更好的方法来实现上述目标而不使用临时数组并且可能没有循环吗?不在函数中使用上述代码的奖励积分,尽管 lambda 是可以接受的。
附言在写这个问题时,我发现了一个很棒的
http_build_query()
.一个下来,一个去。编辑:
结果应该是这样的:
<b>Title: </b> Value</br>
<b>Title2: </b> Value2</br>
<b>Title3: </b> Value3
或者使用不同的设置(不是必需的,但显示了可能性):
key=value&key2=value2&key3=value3
我正在尝试改进我的代码,我到处都使用上面的代码片段。
最佳答案
我的回答:有一些方法,但是:
循环和数组是任何程序员最好的 friend 。
它们提供了非常好的可读性、可重用性,并且通常被认为是执行几乎相同操作的正确方法。
您也可以查看 array_map
或 array_walk
.更少的代码,但无论如何它都是一个循环。
array_walk($data, function($value, $key){
$temp[] = "<b>{$key}:</b> {$value}" ; //Shorthand for array_push is $arr[] = $value ;
}) ;
关于php - 字符串的键和索引 - 内爆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17362243/