条件为json数组通过PHP

I'm Parsing This json Array and I Want to Take text Object of answer and Put That in New Column awnser2, and This is one Row of My json Rows, answer 38 and 39 in json Are Same as text But anser 40 Is Descriptive Awnser, I Got Illegal string offset 'text' for Hello Word, How Can I Make a Condition to Have Both of Them in Output?

[{"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"}]

This Is My Code:

<?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('/|

/','
',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('

check key is set or not otherwise assign value

foreach ($jason_array as $data) {
                    if (array_key_exists('answer', $data)) {   
                        foreach($data['answer'] as $ans){
                              $answers[] = isset($ans['text']) ? $ans['text'] : $ans;                                
                        }
                    }
            }