Как добавить счетчик в a для каждого цикла

#php #google-maps

#php #google-карты

Вопрос:

Я пытаюсь выяснить, как я могу добавить количество, чтобы каждый результат мог отображаться как a — b — c и т.д. Но я не знаю, что мне нужно сделать, можете ли вы помочь. Чтобы было понятнее, я пытаюсь добавить то, что есть в Google Maps при поиске, и оно показывает маркер и 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" />amp;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" />amp;nbsp;<strong><? echo $index; ?><?=$item->title?></strong></h2>
</div
  

>

Ответ №1:

Вы могли бы распечатать результаты в упорядоченном списке:

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

Ответ №2:

Используйте коды ascii в сочетании с chr()

Обновите следующий код и проверьте руководство на chr() , должно быть то, что вам нужно.

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

Примечание: Это PHP-решение, если вы используете значения. Однако, если это строго для отображения, у Джимми Савчука есть хорошее CSS-решение.

Ответ №3:

foreach имеет счетчик того, на какой итерации вы находитесь:

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

Ответ №4:

попробуйте

  <?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" />amp;nbsp;<strong><? echo chr($ascii)   ': '   $closeItems[$i]->title; $ascii  ; ?></strong></h2>
    </div>
 <? } ?>
  

Комментарии:

1. echo chr($ i 65) ‘: ‘ $closeItems[$i]-> title; Это прервется после 26 элементов, имейте в виду 😉

2. Я обновил сообщение частью вашего кода, он работает, но начинается как 0,1,2,3

3. Я отредактировал свой пост заново, попробуйте еще раз. имейте в виду, что я не могу выполнять отладку php с того места, где я нахожусь 😉