假设我有一个数组中的结构:
Array
(
[0] => Array
(
[0] => Heading1
[1] => Array
(
[0] => Array
(
[0] => 2
[1] => Heading2.1
)
[1] => Array
(
[0] => 2
[1] => Heading2.2
)
)
)
[1] => Array
(
[0] => Heading1.2
)
)
如何将函数仅应用于持有标题 2.1 和标题 2.2 的数组元素?
我想应用的函数可能会进一步嵌套数组。如何使我的函数也能在这些新创建的数组上运行?然后创建的数组,直到第二深的级别没有数组?
递归遍历它,使用 is_array() 函数检查它是否是一个数组,如果是,则应用您的函数。
朴素的递归是不行的,重新运行递归是双重否。这里要使用的是拓扑排序。
在计算机科学中,有向图的拓扑排序(有时缩写为topsort或toposort)或拓扑排序是其顶点的线性排序,使得对于每个边uv,u在排序中都位于v之前。
您可以使用
array_walk() 并在您将在每个节点上执行的函数中测试内容是否为数组...
http://php.net/manual/en/function.array-walk.php