El siguiente código está construyendo la estructura adecuada de la matriz que quiero, pero solo lo está haciendo para un resultado, aunque el resultado de MYSQL es de aproximadamente 65 elementos.
Necesito que los niveles de 'tipo' y 'características' sean estáticos, y luego inicie el ciclo dentro del nivel de características (para que cada resultado de mysql cree un elemento dentro del nivel de características)
Lo siguiente es solo cargar el último resultado de la consulta:
$db->setQuery($query); $item=$db->loadObjectList(); echo $db->getErrorMsg(); //dump($item); $stores = [ 'type' => 'FeatureCollection', 'features' => [ foreach ($item as $i) { [ 'type' => 'Feature', 'geometry' => [ 'type' => 'Point', 'coordinates' => [ $i->lat, $i->lng ] ], 'properties' => [ 'storeImage' => $i->logo, // you need to convert this into an actual URL 'storeName' => $i->name, 'phoneFormatted' => $i->phone, // this needs formatting aswell 'address' => $i->address, 'city' => $i->city, 'country' => $i->country, 'postalCode' => $i->zip, 'state' => $i->state ] ] } ] ];¿Cómo puedo hacer un bucle correctamente en la consulta mysql para construir mi matriz de la manera correcta?
Use array_map() para generar una nueva matriz a partir de otra matriz.
$item=$db->loadObjectList(); $stores = [ 'type' => 'FeatureCollection', 'features' => array_map(function($i) { return [ 'type' => 'Feature', 'geometry' => [ 'type' => 'Point', 'coordinates' => [ $i->lat, $i->lng ] ], 'properties' => [ 'storeImage' => $i->logo, // you need to convert this into an actual URL 'storeName' => $i->name, 'phoneFormatted' => $i->phone, // this needs formatting aswell 'address' => $i->address, 'city' => $i->city, 'country' => $i->country, 'postalCode' => $i->zip, 'state' => $i->state ] ]; }, $item) ];