我正在寻找一种快速的方法将关联数组转换为字符串.典型的结构类似于URL查询字符串,但具有可自定义的分隔符,因此我可以使用' &
'用于xhtml链接或' &
'.
我的第一个倾向是使用,foreach
但由于我的方法可以在一个请求中多次调用,我担心它可能太慢.
'ShowList', 'Page' => '2'); $QueryString = ''; foreach ($Parameters as $Key => $Value) $QueryString .= $Amp . $Key . '=' . $Value;
有更快的方法吗?
你可以http_build_query()
用来做那件事.
从提供的关联(或索引)数组生成URL编码的查询字符串.
顺便说一句,我一直在寻找破坏关联数组的最佳方法,但是使用我自己的分隔符......
所以我使用PHP的array_walk()函数来实现这一点,让我将一个关联数组连接到一个参数列表中,然后可以将这些参数应用于HTML标签....
// Create Params Array $p = Array("id"=>"blar","class"=>"myclass","onclick"=>"myJavascriptFunc()"); // Join Params array_walk($p, create_function('&$i,$k','$i=" $k=\"$i\"";')); $p_string = implode($p,""); // Now use $p_string for your html tag
显然,你可以在某种程度上坚持你自己的函数,但它让你了解如何使用自己的方法加入一个关联数组.希望有人帮助:)
如果你不关心确切的格式,但你确实想要一些简单但没有换行符,print_r
你也可以使用json_encode($value)
快速简单的格式化输出.(注意它也适用于其他数据类型)
$str = json_encode($arr); //output... [{"id":"123","name":"Ice"},{"id":"234","name":"Cake"},{"id":"345","name":"Pie"}]
这是我的div数据属性的解决方案:
$attributes = array( 'data-href' => 'http://example.com', 'data-width' => '300', 'data-height' => '250', 'data-type' => 'cover', ); $dataAttributes = array_map(function($value, $key) { return $key.'="'.$value.'"'; }, array_values($attributes), array_keys($attributes)); $dataAttributes = implode(' ', $dataAttributes); ?>>
一种方法是使用print_r(array, true)
它,它将返回数组的字符串表示