gpt4 book ai didi

php - 通过 PHP 处理 json 数组的条件

转载 作者:行者123 更新时间:2023-11-29 11:00:08 24 4
gpt4 key购买 nike

我正在解析这个 json 数组,我想获取 answertext 对象并将其放入新列 awnser2 中,这是是我的 json 行的一行,json 中的答案 38 和 39 与 text 相同,但 anser 40 是描述性的 Awnser,我为 Hello Word 获取了非法字符串偏移“text”,我如何为两者都有输出吗?

[{"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);
?>

我想要Awnser的文本:为...到39和Awnser:为40,40是最后一个awnser

最佳答案

检查键是否已设置或未以其他方式分配值

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

关于php - 通过 PHP 处理 json 数组的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com