【发布时间】:2013-01-23 21:34:46
【问题描述】:
我有一个 div 数组(博客文章)。说 33 篇博文。我的任务是将它们 first 分成两对(每隔两个 div 包装一个),这样我就有 17 个 div(每个包含一对博客文章,最后一个可能只包含一个博客文章)然后 - 我希望这 15 个对 div 再次分成 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
唯一困扰我的是,当我通过 foreach 输出所有 div 时,我碰巧自然有 3 个嵌套的 foreaches... 首先渲染 3 个(或更多)大包装器 - 然后 - 5 对包装器最后 - 用于呈现两篇博文的 foreach。
我知道另一种解决方案 - 在原始数组上运行一次 foreach 并安排一些数学条件(例如 if( $i % 2 == 0 ) { //do stuff })以在适当的时候打开和关闭合适的 div。这是我无法完成的,如果有人可以帮助我解决这个问题,我会非常高兴。
我的问题如下:
- 在性能方面是否存在显着差异? 要运行多个嵌套的 foreach 吗?
- 对于在 这种情况?或者可能有一种完全不同的方法。
【问题讨论】: