Я PARSING Этот JSon массив, и я хочу взять text
Объект answer
и положить, что в Нью-Column awnser2
, и это один ряд моих JSon Ряды, ответ 38 и 39 in json Are То же, что и text
Но anser 40 Описательный Awnser, я получил недопустимое строковое смещение 'text' для Привет, Word, Как я могу сделать условие, чтобы оба они были на выходе?условия JSon массива с помощью PHP
[{"id":"38","answer":[{"option":"3","text":"HIGH"}],"type":"a"},
{"id":"39","answer":[{"option":"3","text":"LOW"}],"type":"b"},
{"id":"40","answer":["Hello Word"],"type":"c"}]
Это мой код:
<?php
$con=mysqli_connect("localhost","root","","array");
mysqli_set_charset($con,"utf8");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT `survey_answers`,us_id FROM `user_survey_start`";
if ($result=mysqli_query($con,$sql)){
while ($row = mysqli_fetch_row($result)){
$json = $row[0];
if(!is_null($json)){
$json = preg_replace('/\r|\n/','\n',trim($json));
$jason_array = json_decode($json,true);
$answers = array();
foreach ($jason_array as $data) {
if (array_key_exists('answer', $data)) {
foreach($data['answer'] as $ans){
$answers[] =$ans['text'] ;
}
}
}
if(!empty($answers)) {
$answers= implode('',$answers); /// implode yes if you got values
}
else {
$answers = 'Nothing Find'; //blank if not have any values
}
$sql3="update user_survey_start set awnser2='$answers' where us_id=".$row[1];//run update sql
echo $sql3."<br>";
mysqli_query($con,$sql3);
}
}
}
mysqli_close($con);
?>
Я хочу иметь text of Awnser:
для .... 39 и Awnser:
на 40, 40 является последним awnser
Ваш «Hello World» не находится в JSONArray, как в предыдущих двух. – FreedomPride
Я знаю, что я хочу «текст Азера»: для 38 и 39 и «Awnser:' для 40, 40 последний айнсер –