#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 с того места, где я нахожусь 😉