将回调应用于多维数组
我在 PHP 中有这个:
$data = array("test"=>array("abc"=>"xyz"));
我想在 'data:' 后面附加数组值,因此 $data 的输出将为 'data:xyz'强>数组。
这只是一个样本。我怎样才能用多维数组做到这一点。 IE;附加带有多维数组值的字符串?我可以在同一个数组中使用持久值,以便我可以重复使用它吗?
I have this in PHP:
$data = array("test"=>array("abc"=>"xyz"));
I want to append 'data:' with array values, so output will be 'data:xyz' for that $data array.
Its just a sample. How can I do this with multi dimension arrays. i.e; appending string with multi dimension array values ? Can I do with persistent values in same array so I can re-use this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
有一个 PHP 函数,“将用户函数递归地应用于数组的每个成员”,它是 array_walk_recursive()。
下面是一个使用闭包的 PHP 5.3 示例:
如果您觉得有趣,可以将其设为接受可配置前缀的函数,例如:
There's a PHP function that "[applies] a user function recursively to every member of an array" it's array_walk_recursive().
Here's an example for PHP 5.3 that uses a closure:
If you feel fancy, you can make it a function that accepts a configurable prefix, such as:
想象一下,您想要将自定义函数应用于数组,但仅应用于特定键 =>值对,这是我的改进版本:
输出:
Imagine that you want to apply a custom function to your array but only to an specific key => value pair, this is my improved version:
Output:
如果您不关心人类可读性,只想序列化一个数组供以后使用:
如果您尝试修改原始数组,以便在 每个级别上数组中的每个 值:
If you don't care about human-readability and just want to serialise an Array for later use:
If you're trying to modify the original array such that the text "data:" is prepended to every value in the Array on every level:
要修改数组中的每个项目,可以使用函数
array_map()
示例:
输出:
To modify each item in an array, you can use the function
array_map()
Example:
Output: