Consulto la columna de dirección de la base de datos y paso esa dirección múltiple a la API de Google Geocoder y almaceno ese resultado de latitud y longitud en la variable $coordinate . Cuando var_export($coordinate); Obtengo la salida en el siguiente formato:
'[19.0759837,72.8776559]''[47.6062095,-122.3320708]''[12.9715987,77.5945627]' pero cuando use print_r(array($variablename)); Obtengo la salida en este formato:
Array ( [0] => [19.0759837,72.8776559] ) Array ( [0] => [47.6062095,-122.3320708] ) Array ( [0] => [12.9715987,77.5945627] )Pero quiero que la salida esté en una sola matriz, algo como esto.
Array ( [0] => [19.0759837,72.8776559], [1] => [47.6062095,-122.3320708], [2] => [12.9715987,77.5945627] )Este es el código php:
<?php // database connection code and query to fetch address column the database and pass address to geocode() header("content-type: application/json"); header('Access-Control-Allow-Origin: *'); $config = parse_ini_file('./config.ini'); $connect = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $ordertracker = mysqli_query($connect, "select address from ordertracker"); if (!$ordertracker) { echo "Error fetching results: " . mysqli_error(); } $address=array(); while($row = mysqli_fetch_assoc($ordertracker)) { $address= $row['address']; geocode($address); } function geocode($address) { $address = urlencode($address); $url = "http://maps.googleapis.com/maps/api/geocode/json?address=$address&sensor=false"; $geocode=file_get_contents($url); $output= json_decode($geocode); $lat = $output->results[0]->geometry->location->lat; $long = $output->results[0]->geometry->location->lng; $coordinate = "[" . $lat . "," . $long . "]"; var_export($coordinate); } ?>Si desea una matriz, entonces no debe usar cadenas literales y concatenación para construirla, ya que eso dará como resultado una cadena.
En su lugar, deje que su función genere una matriz con dos valores (latitud y longitud) y agregue esos pares a su matriz principal en su ciclo principal:
$address = []; while($row = mysqli_fetch_assoc($ordertracker)) { $address[] = geocode($row['address']); } print_r($address); function geocode($address) { $address = urlencode($address); $url = "http://maps.googleapis.com/maps/api/geocode/json?address=$address&sensor=false"; $geocode = file_get_contents($url); $output= json_decode($geocode); $lat = $output->results[0]->geometry->location->lat; $long = $output->results[0]->geometry->location->lng; $coordinate = [$lat, $long]; return $coordinate; }