我试图修改一个joomla模块,我有一个小问题(这不是joomla相关的,因此不需要代码)。
我有一个foreach循环,其中有一个显示文章的代码块。只要您在管理面板中设置它,它就会重复多次。我想添加的功能,使该模块显示项目超过1列。我所需要的只是额外津贴,我想其他的我都搞定了。
基本上,我如何修改一个简单的foreach循环,使它在多个列上显示文章?
而不是
b c d e我想要这个
……d
b……e
c如果您坚持使用表格,则可以从中间获取结果计数和工作
$half_count = floor(count($entries) / 2);
for($i=0;$i<$half_count;$i++)
{
echo '<tr>';
echo '<td>' . $entries[$i] . '</td>';
echo '<td>' . (isset($entries[$half_count + $i]) ? $entries[$half_count + $i]: '') . '</td>';
echo '</tr>';
}
这里有一个简单的方法:
php > $arr = array(1,2, 3, 4, 5, 6, 7, 8, 9, 10);
php > for ($i=0; $i<count($arr); $i+=2) { print $arr[$i] . "'t" . $arr[$i+1] . "'n"; }
1 2
3 4
5 6
7 8
9 10
据我所知,您将无法使用foreach语句,而是使用for语句。
例如:$iterations = (count($array_of_items) % 2) ? (count($array_of_items) / 2) + 1 : count($array_of_items) / 2;
for ($i = 0; $i <= $iterations; $i++) {
if (isset($array_of_items[$i+3]))
echo $array_of_items[$i].'........'.$array_of_items[$i+3];
else
echo $array_of_items[$i];
}
非常简单的代码,没有这么少的信息,但可以做到这一点!
我将在for循环中创建两个文章数组,而不是在for循环中输出。然后循环遍历这些数组,在主循环之外创建列。
你的问题没有什么信息,但这里有一些你可以使用的
$arr = array("a","b","c","d","e","f");
for ($i = 0; $i<count($arr); $i++){
echo $arr[$i]." ". $arr[$i+3] ."'n";
if($i == 2){ break;} //Modify 2 as more alphabets are added
}
输出a d
b e
c f
对于一般解决方案,假设一个打包数组....
function show_table($data, $columns)
{
$items=count($data);
$iters=$items/$columns + ($items % $columns) ? 1 : 0;
for ($y=0; $y<$iters; $y++) {
for ($x=0; $x<$columns; $x++) {
$offset=$y*$columns + $x;
if ($offset<$items) print $data[$offset] . ' ';
}
print "'n";
}
}