координаты — функция повторения php 10 раз, если значение запятая

Я пытаюсь повторить функцию, только если значение равно «,»:

Это мой код для получения координат от адреса, но иногда он получает только «», поэтому я хочу, чтобы он пробовал 10 раз, пока не получит полные координаты.

$coordinates1 = getCoordinates($placeadress);
$i == 0;
while (($coordinates1 == ',') && ($i <= 10)) {
$coordinates1 = getCoordinates($placeadress);
$i++;
}

Код функции таков:

function getCoordinates($address) {
$address = str_replace(" ", "+", $address); // replace all the white space with "+" sign to match with google search pattern
$address = str_replace("-", "+", $address); // replace all the "-"  with "+" sign to match with google search pattern
$url = "http://maps.google.com/maps/api/geocode/json?address=$address";
$response = file_get_contents($url);
$json = json_decode($response,TRUE); //generate array object from the response from the web
return ($json['results'][0]['geometry']['location']['lat'].",".$json['results'][0]['geometry']['location']['lng']);
}

-1

Решение

Может быть попробовать это

$coordinates1 = getCoordinates($placeadress);
$i = 0;
while ($i <= 10) {
$coordinates1 = getCoordinates($placeadress);
if($coordinates1==',')
$i++;
else
break;
}

Это прервет цикл, как только значение координат не станет запятой, и вы готовы идти дальше. Если это запятая, она перейдет к следующей итерации в то время как

0

Другие решения

Вы можете просто сократить весь этот код до поры с пустым блоком:

<?php
$i = 0;
while (
($coords = getLatLong($place))
&& $coords == ','
&& $i++ < 10
);

Возможно, до сих пор нет гарантии, что верное значение будет возвращено даже после 10-кратного вызова функции.

0

По вопросам рекламы [email protected]