用键内爆关联数组的最快方法
我正在寻找一种将关联数组转换为字符串的快速方法。 典型的结构类似于 URL 查询字符串,但具有可自定义的分隔符,因此我可以对 xhtml 链接使用“&
”,否则使用“&
”。
我的第一个倾向是使用 foreach
但由于我的方法可能在一个请求中被多次调用,我担心它可能太慢。
<?php
$Amp = $IsXhtml ? '&' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
$QueryString .= $Amp . $Key . '=' . $Value;
有更快的方法吗?
I'm looking for a fast way to turn an associative array in to a string. Typical structure would be like a URL query string but with customizable separators so I can use '&
' for xhtml links or '&
' otherwise.
My first inclination is to use foreach
but since my method could be called many times in one request I fear it might be too slow.
<?php
$Amp = $IsXhtml ? '&' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
$QueryString .= $Amp . $Key . '=' . $Value;
Is there a faster way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
您可以使用
http_build_query()
来执行此操作。You can use
http_build_query()
to do that.如果您不关心精确格式,但您确实想要一些简单但没有
print_r
换行符的内容,您也可以使用json_encode($value)< /code> 用于快速简单的格式化输出。 (注意它也适用于其他数据类型)
If you're not concerned about the exact formatting however you do want something simple but without the line breaks of
print_r
you can also usejson_encode($value)
for a quick and simple formatted output. (note it works well on other data types too)顺便说一句,我正在寻找内爆关联数组的最佳方法,但使用我自己的分隔符等...
所以我使用 PHP 的 array_walk() 函数来完成此操作,让我将关联数组加入到参数列表中然后可以应用于 HTML 标签......
显然,您可以以某种方式将其粘贴到您自己的函数中,但它让您了解如何使用自己的方法加入关联数组。
希望对某人有帮助:)
As an aside, I was in search to find the best way to implode an associative array but using my own seperators etc...
So I did this using PHP's array_walk() function to let me join an associative array into a list of parameters that could then be applied to a HTML tag....
Obviously, you could stick that in your own function somehow but it gives you an idea of how you can join an associative array using your own method.
Hope that helps someone :)
这是我的解决方案,例如 div 数据属性:
This is my solution for example for an div data-attributes:
一种方法是使用 print_r(array, true) ,它将返回数组的字符串表示形式
One way is using
print_r(array, true)
and it will return string representation of array我的解决方案:
My solution:
更短、更透明、更直观的 array_walk 怎么样?
What about this shorter, more transparent, yet more intuitive with array_walk
用于从简单数组创建 HTML 属性字符串(带引号)的单行代码:
示例:
A one-liner for creating string of HTML attributes (with quotes) from a simple array:
Example:
为此,请使用 array_walk 。
结果
Use
array_walk
for this.Result
我喜欢@kostikovmu 的方法,因为它看起来比其他长代码更简单。 虽然这不正是我们所追求的..
我们寻找这种标头格式:“...key: value\r\n...”。
所以我用扩展公式来得到
I liked the approach of @kostikovmu as it looks simpler than other long codes. though this is not exactly what we are after..
We look for this header format : "...key: value\r\n...".
So i used extended the fomula to get that