php中的二维多维数组到一维数组
只是想知道是否有人在 php 中将 2 维数组转换为 1 维数组。我还没有在 php.ini 中找到明确的解释。任何建议将不胜感激。
Just wondering if anyone has transformed a 2 dim array to a one dim array in php. I've yet to come across a clear explanation in php. Any suggestion would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
如果您在此处从 Query 获取值,您可以使用 PHP 5.5+ 中支持的数组函数,这可能会对您有所帮助,
告别循环!享受智能代码。
This might be helpful to you if you fetching values from Query here you can use array function which will support in PHP 5.5+
Say Good bye to loop! Enjoy Smart Code.
试试这个:
Try this:
这取决于您的需要,但如果您想将 2d 数组减少为完全填充 2d 平面的 1d 曲线,您可能会寻找空间索引或空间填充曲线。有一些著名但不为人所知的曲线,如 z 曲线、希尔伯特曲线、皮亚诺曲线或摩尔曲线。您可以使用 L 系统写出这样的曲线。
It depends on what you need but if you want to reduce your 2d array to a 1d curve that completley fills the 2d plane you probably looking for a spatial index or a space-filling-curve. There are some famous and not so known like the z-curve, the hilbert curve, the peano curve or the moore curve. You can write such a curve with a L-system.
试试这个:
请注意,它包含一个测试来查看该值是否已设置(非空)。如果数组是具有不同长度的行的数组的转置,则该数组将具有空值某些细胞,如果您试图将这样的野兽线性化,则此检查会很有帮助。
Try this one:
Notice that it includes a test to see if the value is set (non-null). An array that's a transposition of an array with rows of varying length will have null values in some cells, and this check can be helpful if you're trying to linearize such a beast.
在 PHP 5.3 之后,有一个名为
arrray_walk_recursive
的新函数请注意
$output
是 通过引用传递$output
将导致[1,2,3,4,5,6,7,8,9]< /代码>
After PHP 5.3 there have a new function called
arrray_walk_recursive
Notice that the
$output
is passed by referenceThe
$output
will result in[1,2,3,4,5,6,7,8,9]
每当数组中有很多某物并且您只需要一个某物来代表它们时,您的第一个想法应该是
array_reduce()
以某种方式。来自 PHP 文档:
在 2D => 的情况下一维数组转换,某物是数组;我们在一个数组中有很多这样的元素,但我们只想要其中一个。
结果:
Your first thought should be
array_reduce()
whenever you have lots of something in an array and you just want one something by itself which represents them all in some way.From the PHP docs:
In the case of 2D => 1D array conversion, the something is array; we have lots of them in an array but we just want one of them by itself.
Result:
矩形二维数组的解决方案确实很简单,但我遇到了问题。我的二维数组由不同长度的一维数组组成:
我想出了更通用的解决方案将任何二维数组转换为一维:
The solution for rectangular 2D array is simple indeed, but I had a problem. My 2D-array consisted of 1D arrays of different lengths :
I came up with more generalized solution to turn any 2D array into 1D: