我有一段代码可以完美地提取不同办公地点的数据。
我想做的是能够使这个循环的最后一次迭代将div类改为其他东西,所以我可以应用一组不同的css样式。
$fields = get_group('Offices');
foreach($fields as $field){
echo'<div class="oloc">';
if($locationVar==NULL || $locationVar!=$field['office-location'][1]) {
echo '<a name="' . strtolower(str_replace(' ', '-', $field['office-location'][1])) . '"></a><h3>' . $field['office-location'][1] . '</h3>';
$locationVar = $field['office-location'][1];
} else {
echo "<br />";
}
if($field['office-gm'][1]){
echo '<div class="gm"><img src="http://maps.googleapis.com/maps/api/staticmap?center=' . $field['office-gm'][1] . '&zoom=9&size=250x250&markers=color:blue|label:A|' . $field['office-gm'][1] . '&sensor=false"></div>';
}
if($field['office-name'][1]){
echo '<strong>' . $field['office-name'][1] . '</strong><br /><br />';
}
if($field['office-phone'][1]){
echo 'Phone: ' . $field['office-phone'][1] . '<br />';
}
if($field['office-fax'][1]){
echo 'Fax: ' . $field['office-fax'][1] . '<br />';
}
if($field['office-address'][1]){
echo '<br />Address:<br />' . strip_tags($field['office-address'][1], '<br><br />') . '<br />';
}
if($field['office-webpage'][1]){
echo 'Web: ' . '<a href="' . $field['office-webpage'][1] . '">Office Webpage</a><br />';
}
if($field['office-email'][1]){
echo 'Email: ' . '<a href="' . $field['office-email'][1] . '">Office Email</a><br />';
}
if($field['office-emp'][1]){
echo 'Jobs: ' . '<a href="' . $field['office-emp'][1] . '">Employment Application</a><br />';
}
if($field['office-fb'][1]){
echo 'Facebook: ' . '<a href="' . $field['office-fb'][1] . '">Facebook</a><br />';
}
if($field['office_office_twitter'][1]){
echo 'Twitter: ' . '<a href="' . $field['office_office_twitter'][1] . '">Twitter</a><br />';
}
echo '</div>';
}
答案 0 :(得分:0)
将每个echo放在var中,将此类定义放在另一个var中。然后在你的foreach结束时你会这样检查:
$i = 0;
foreach(...
if( $i == count($fields) ) { // change class }
答案 1 :(得分:0)
试试这个
$i = 0;
$total = count($fields);
$final = false;
foreach($fields as $field){
$i++;
$final = ($i + 1 == $total)? true : false;
if($final)
echo'<div class="NEW_CLASS">';
else
echo'<div class="oloc">';
....
}
答案 2 :(得分:0)
首先,您应该获得办公室的总数,这样当您进行最后一次迭代时,您可以对此采取一些措施。
$fields = get_group('Offices');
$fields_count = count($fields);
$i = 0;
foreach ($fields as $field) {
$is_final = ++$i == $fields_count;
echo '<div class="oloc' . ($is_final ? ' oloc-final' : '') . '">';
[...]
}
答案 3 :(得分:0)
对于此类情况,您可以使用CachingIterator
和hasNext()
方法:
$fields = get_group('Offices');
$it = new CachingIterator(new ArrayIterator($fields));
foreach($it as $field)
{
...
if (!$it->hasNext()) echo 'Last:';
...
}