如何为每个循环添加一个计数

时间:2011-05-10 19:34:15

标签: php google-maps

我试图找出如何添加计数以便每个结果都能显示为a-b -c等...但我不知道我需要做什么才能帮助你。为了更清楚我试图在搜索时添加谷歌地图所具有的内容,并在结果中显示标记和a,b,c。

$xmlString = file_get_contents($mapURL);
$xmlString = str_replace('georss:point','point',$xmlString);

$xml = new SimpleXMLElement($xmlString);
$items = $xml->xpath('channel/item');
$closeItems = array();
foreach($items as $item)
{
    $latlng = explode(' ',trim($item->point));

    //calculate distance
    $dist = calc_distance(array('lat'=>$zlat,'long'=>$zlng),array('lat'=>$latlng[0],'long'=>$latlng[1]));
    if($dist<={segment_4})$closeItems[] = $item;
}

?>
<div style="float:left; width:100%;margin:10px 0px;"><h1 style="font-size:16px; font-weight:bold; border-bottom:1px solid #333;">Servicer Results (within {segment_4} miles)  of Your selected area</h1></div>

//有问题的代码

 <?php foreach($closeItems as $item ):?> 
            <div style="float:left; width:275px;height:auto;margin:20px 5px;margin-left:40px; font-family: Arial,Helvetica;font-size:12px">
        <h2 style="font-size:16px;color: #499AAE; ;"><img src="http://winstonind.com/images/mapicon.png" alt="map icon" />&nbsp;<strong><?=$item->title?></strong></h2>
    </div>

新代码有效,但不是字母

 <div style="float:left; width:100%;margin:10px 0px;"><h1 style="font-size:16px; font-weight:bold; border-bottom:1px solid #333;">Servicer Results (within {segment_4} miles)</h1></div>
<?php foreach($closeItems as $index=>$item ):?> 

    <div style="float:left; width:275px;height:auto;margin:20px 5px;margin-left:40px; font-family: Arial,Helvetica;font-size:12px">
    <h2 style="font-size:16px;color: #499AAE; ;"><img src="http://winstonind.com/images/mapicon.png" alt="map icon" />&nbsp;<strong><? echo $index; ?><?=$item->title?></strong></h2>
</div

&GT;

4 个答案:

答案 0 :(得分:2)

您可以在有序列表中打印结果:

<ol type="a">
    <? foreach($closeItems as $item ):?> 
        <li><!-- whatever --></li>
    <? endforeach; ?>
</ol>

答案 1 :(得分:1)

使用ascii代码与chr()

结合使用

将以下内容更新为您的代码并查看chr()的手册,应该是您需要的。

...
$ascii = 97;
foreach($items as $item) {
  $letter = chr($ascii++);
  echo $letter;
  ...

注意:如果您使用的是这是一个PHP解决方案。但是,如果这是严格的显示 Jimmy Sawczuk 有一个很好的CSS解决方案。

答案 2 :(得分:0)

foreach有一个反映你所处的行为的信息:

<?php foreach($closeItems as $index=>$item ):?> 
//now just use $index as your counter

答案 3 :(得分:0)

 <?php 
      $ascii = 65;
      for($i = 0; $i < sizeof($closeItems); ++$i){ ?> 
    <div style="float:left; width:275px;height:auto;margin:20px 5px;margin-left:40px; font-family: Arial,Helvetica;font-size:12px">
        <h2 style="font-size:16px;color: #499AAE; ;"><img src="http://winstonind.com/images/mapicon.png" alt="map icon" />&nbsp;<strong><? echo chr($ascii) + ': ' + $closeItems[$i]->title; $ascii++; ?></strong></h2>
    </div>
 <? } ?>