Ich bin neu in PHP und versuche, 2 Arrays zusammen in ein JSON-Objekt zu kodieren.json_encode mehrere Arrays in ein JSON-Objekt in PHP?
Derzeit ist dies die JSON Ausgabe:
{
"image_link": "some url",
"zoomin_level": "8",
"zoomout_level": "18.5",
"position_lat": "32.913105",
"position_long": "-117.140363",
}
Ich mag es, folgendes zu erreichen:
{
"image_link": "some url",
"zoomin_level": "2",
"zoomout_level": "15",
"position_lat": "32.9212",
"position_long": "-117.124",
"locations": {
"1": {
"image_link": "some url",
"name": "Name",
"lat": 32.222,
"marker_long": -112.222
},
"2": {
"image_link": "some url",
"name": "Name",
"lat": 32.222,
"marker_long": -112.222
}
}
}
Dies ist ähnlich wie die Frage hier gestellt: PHP json_encode multiple arrays into one object
jedoch Mine ist etwas anders, weil ich gerne das 2. Array als Teil eines Schlüssel-Wert-Teils innerhalb des 1. Arrays hinzufügen möchte.
Hier ist meine PHP-Code:
$sql = "select * from first_table";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));
$rowCount = $result->num_rows;
$index = 1 ;
$newArray = [];
while($row =mysqli_fetch_assoc($result))
{
$sqlnew = "select * from second_table";
$resultnew = mysqli_query($connection, $sqlnew) or die("Error in Selecting " . mysqli_error($connection));
//create an array
$jsonData = array();
$rowCountnew = $resultnew->num_rows;
$indexnew = 1;
if ($rowCountnew >0)
{
while($rownew =mysqli_fetch_assoc($resultnew))
{
$locations[$indexnew] = array("image_link" => $rownew['image_link'], "name" => $rownew['name'], "position_lat" => doubleval($rownew['position_lat']), "position_long" => doubleval($rownew['position_long']));
++$indexnew;
}
}
$newArray[$row['map_type']] = $row['map_value'];
}
echo json_encode($newArray);
nicht die richtige Syntax zu wissen, habe ich versucht, das Folgende auszuführen, die in Müll ergab: echo json_encode($newArray, "locations" =>$locations);
PERFECT .. .will Antwort akzeptieren, wenn es erlaubt :) – Pangu
eine letzte Frage, gibt es eine Möglichkeit, die automatisch generierten Werte '1',' 2', für jedes Element, um eine eindeutige Zeichenfolge statt, sagen 'locat ion1', 'location2'? – Pangu
Sie verwenden $ indexnew, was ein Zähler ist und warum Sie 1, 2 usw. erhalten. Verwenden Sie statt $ indexnew, was immer Sie wollen. z.B. $ locations ['location_1'] = array ("image_link" => ....) – Phil