Добавить данные к каждому элементу в массиве -> JSON

#php #mysql #arrays #json

#php #mysql #массивы #json

Вопрос:

Я извлекаю данные из базы данных MySQL в массив assoc.

Мне нужно добавить дополнительную строку данных, topicstring, к каждому элементу в массиве, затем преобразовать в JSON.

Но по какой-то причине я могу заставить его добавлять дополнительные строки только к первому элементу в массиве или в качестве нового, последнего элемента в массиве.

Код:

 $sql_build_profile="SELECT SourceOperation, FC, Register, RegisterID FROM DeviceProfiles WHERE DeviceID = '".$q."' AND RegisterID IN (".$ParameterArray.") ORDER BY RegisterID ASC";
$result_build_profile = mysqli_query($con,$sql_build_profile);
$json_array = array();
//Time to build the output
while($row1 = mysqli_fetch_assoc($result_build_profile)) {

$topicString = $UniqueString."/".$row1['RegisterID'];
$json_array[] = $row1;
foreach ($result_build_profile as $key => $result_build_profile) {
    $result_build_profile[$key]['topic'] = $topicString;
}
echo json_encode($result_json);
}
  

Ответ №1:

Это может помочь:

 $sql_build_profile="SELECT SourceOperation, FC, Register, RegisterID FROM DeviceProfiles WHERE DeviceID = '".$q."' AND RegisterID IN (".$ParameterArray.") ORDER BY RegisterID ASC";
$result_build_profile = mysqli_query($con,$sql_build_profile);

$json_array = array();

//Time to build the output
while($row1 = mysqli_fetch_assoc($result_build_profile)) {

    $topicString = $UniqueString."/".$row1['RegisterID'];
    $row1['topic'] = $topicString;

    $json_array[] = $row1;
}

echo json_encode($json_array);