我有一个 div 数组(博客文章)。说 33 篇博文。我的任务是首先将它们分成对(每隔两个 div 包装一个),这样我就有 17 个 div(每个包含一对博客文章,最后一个可能只包含一个博客文章)然后 - 我想要这 15 个pair-divs 再次分成 5 个组(最后一个可能包含更少)......所以最后我有 3 个块,每个块包含最多 5 个块,每个块包含两个博客文章。我说得够清楚吗?
当然,所有帖子的总数是未知的,所以我必须让它自动工作。
在寻找答案时,我发现了名为的函数array_chunk
,它正是这样做的 - 将数组拆分为数组......在我的例子中 - 我必须运行这个函数两次。它完美地工作:)
$posts = array( 1,2,3,4 ... 33 );
$pairs = array_chunk( $posts, 2 ) // $pairs will contain an array of 17 arrays each containing two elements
$wrap = array_chunk( $pairs, 5 ) // $wrap will contain an array of 3 arrays each containing an array of pairs
唯一困扰我的是,当我通过输出所有 div 时,foreach
我碰巧自然有 3 个嵌套foreaches
...首先渲染 3 个(或更多)大包装器 - 然后 - 5 对包装器,最后 - 一个 foreach 来渲染两个博客帖子。
我知道另一种解决方案 -foreach
在原始数组上运行一次并安排一些数学条件(例如if( $i % 2 == 0 ) { //do stuff }
)以在适当的时刻打开和关闭合适的 div。这是我无法完成的,如果有人可以帮助我解决这个问题,如果这种方法是可以遵循的,我会非常高兴。
我的问题如下:
- 运行多少嵌套 foreaches 是否存在显着差异(在性能方面)?
- 对于在这种情况下使用哪种方法,是否有某种最佳实践?或者可能有一种完全不同的方法。