PHP在对象上循环根据对象长度操纵输出
我有一个我正在循环的PHP对象,我知道这个对象定义了两件事,我永远不需要循环超过12次(1-12次),而且我还必须至少循环一次 当对象长度超过6个项目时,我的问题就出现了。如果对象长度超过6个项目,我需要将结果拆分为2个PHP在对象上循环根据对象长度操纵输出,php,loops,object,foreach,Php,Loops,Object,Foreach,我有一个我正在循环的PHP对象,我知道这个对象定义了两件事,我永远不需要循环超过12次(1-12次),而且我还必须至少循环一次 当对象长度超过6个项目时,我的问题就出现了。如果对象长度超过6个项目,我需要将结果拆分为2个,而对于我来说,我无法找到一个很好的方法来实现这一点 这是我的尝试 <?php $count = 1; ?> <?php if(is_object($active_projects)) : ?> <div class="co
,而对于我来说,我无法找到一个很好的方法来实现这一点
这是我的尝试
<?php $count = 1; ?>
<?php if(is_object($active_projects)) : ?>
<div class="col_1">
<?php if($count < 2) : ?>
<strong>Active projects</strong> <a href="/projects" class="view">View All</a>
<?php endif; ?>
<ol <?php echo ($count > 1 ? " class='no-header'" : ""); ?>>
<?php foreach($active_projects as $project) : ?>
<li><a href=""><?php echo $project->project_name; ?></a></li>
<?php $count ++; ?>
<?php endforeach; ?>
</ol>
</div>
<?php endif; ?>
活动项目
试试这个:
<?php
//create an object with 12 items
$obj = new stdClass();
for($i = 1; $i <= 12; $i++)
{
$project = "project_$i";
$obj->{$project} = new stdClass();
$obj->{$project}->name = "Project $i";
}
function wrapInLi($projectName)
{
return "<li>$projectName</li>\n";
}
function wrapInOl($arrayOfLi)
{
$returnString = "<ol>\n";
foreach ($arrayOfLi as $li)
{
$returnString .= $li;
}
return $returnString . "</ol>\n";
}
/*
* The classname is adjustable, just in case
*/
function wrapInDiv($ol, $class)
{
return "<div class='$class'>\n$ol</div>\n";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$arrayOfLi = array();
foreach($obj as $project)
{
//fill an array with list-items
$arrayOfLi[] = wrapInLi($project->name);
//six list-items? wrap it
if(count($arrayOfLi) === 6)
{
//wrap in unordered list
$ol = wrapInOl($arrayOfLi);
//wrap in div and echo
echo wrapInDiv($ol, 'col_1');
//reset array
$arrayOfLi = array();
}
}
?>
</body>
</html>